打印

C的问题.

[复制链接]
1979|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
龙斌|  楼主 | 2007-1-11 22:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在头文件(pnl.h)中这样定义:
#ifndef _PNL_H_
#define _PNL_H_
typedef struct{
               void (*calc)(void*);
               unsigned int rf;        //Q0,给定频率
               unsigned int rul;       //Q0,给定输出线电压有效值
               unsigned int rudc;      //Q0,给定母线电压
               unsigned int run;       //Q0,设定
               unsigned int f;
               unsigned int u1_max;
               unsigned int udc;
}PNL;

#define PNL_DEFAULTS{                   \
                     (void (*)(void*))pnl_calc, \
                     50,                 \
                     180,                \
                     310,                \
                     0,                  \
                     0,                  \
                     0,                  \
                     0,                  \
}

typedef PNL *PNL_Handle;
void pnl_calc(PNL_Handle);
#endif

主程序(AD.C)这样用:
#include "pnl.h"
PNL pnl=PNL_DEFAULTS;
void main(void)
{

}

编译出现下面问题:
"ad.c", line 13: [F001] syntax error at or near symbol ''
"ad.c", line 13: [F001] syntax error at or near symbol ''
"ad.c", line 13: [F141] illegal function call
"ad.c", line 13: [E152] initializer for 'pnl' has incompatible type
"ad.c", line 13: [F151] non-constant initializer for 'pnl'
这是为什么???

相关帖子

沙发
龙斌|  楼主 | 2007-1-12 20:02 | 只看该作者

这个问题困惑我几个了.

使用特权

评论回复
板凳
龙斌|  楼主 | 2007-1-12 21:46 | 只看该作者

我晕.怎么会这样.

#define PNL_DEFAULTS{                   \
                     (void (*)(void*))pnl_calc, \
                     50,                 \
                     180,                \
                     310,                \
                     0,                  \
                     0,                  \
                     0,                  \
                     0,                  \
}

要改为
#define PNL_DEFAULTS {                   \
                     (void (*)(void*))pnl_calc, \
                     50,                 \
                     180,                \
                     310,                \
                     0,                  \
                     0,                  \
                     0,                  \
                     0,                  \
}
就正确了.

使用特权

评论回复
地板
tcjcxy30| | 2013-6-6 10:46 | 只看该作者
哥们,我也是碰到这个问题,你在三楼的修改有什么区别么,没看出来啊?

使用特权

评论回复
5
zhangmangui| | 2013-6-6 13:50 | 只看该作者
tcjcxy30 发表于 2013-6-6 10:46
哥们,我也是碰到这个问题,你在三楼的修改有什么区别么,没看出来啊?

#define PNL_DEFAULTS和{之间多了个空格  别的都一样  哈哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

24

帖子

1

粉丝