C的问题.
我在头文件(pnl.h)中这样定义:<br />#ifndef _PNL_H_<br />#define _PNL_H_<br />typedef struct{<br /> void (*calc)(void*);<br /> unsigned int rf; //Q0,给定频率<br /> unsigned int rul; //Q0,给定输出线电压有效值<br /> unsigned int rudc; //Q0,给定母线电压<br /> unsigned int run; //Q0,设定<br /> unsigned int f;<br /> unsigned int u1_max;<br /> unsigned int udc;<br />}PNL;<br /><br />#define PNL_DEFAULTS{ \<br /> (void (*)(void*))pnl_calc, \<br /> 50, \<br /> 180, \<br /> 310, \<br /> 0, \<br /> 0, \<br /> 0, \<br /> 0, \<br />}<br /><br />typedef PNL *PNL_Handle;<br />void pnl_calc(PNL_Handle);<br />#endif<br /><br />主程序(AD.C)这样用:<br />#include "pnl.h"<br />PNL pnl=PNL_DEFAULTS;<br />void main(void)<br />{<br /><br />}<br /><br />编译出现下面问题:<br />"ad.c", line 13: syntax error at or near symbol ''<br />"ad.c", line 13: syntax error at or near symbol ''<br />"ad.c", line 13: illegal function call<br />"ad.c", line 13: initializer for 'pnl' has incompatible type<br />"ad.c", line 13: non-constant initializer for 'pnl'<br />这是为什么???这个问题困惑我几个了.
我晕.怎么会这样.
#define PNL_DEFAULTS{ \<br /> (void (*)(void*))pnl_calc, \<br /> 50, \<br /> 180, \<br /> 310, \<br /> 0, \<br /> 0, \<br /> 0, \<br /> 0, \<br />}<br /><br />要改为<br />#define PNL_DEFAULTS { \<br /> (void (*)(void*))pnl_calc, \<br /> 50, \<br /> 180, \<br /> 310, \<br /> 0, \<br /> 0, \<br /> 0, \<br /> 0, \<br />}<br />就正确了.<br /><br /> 哥们,我也是碰到这个问题,你在三楼的修改有什么区别么,没看出来啊? tcjcxy30 发表于 2013-6-6 10:46 static/image/common/back.gif哥们,我也是碰到这个问题,你在三楼的修改有什么区别么,没看出来啊?
#define PNL_DEFAULTS和{之间多了个空格别的都一样哈哈
页:
[1]