数组初始化错误的#define
我在初始化下使用#define
秒的数组,但我不断收到错误“预期的表达”数组初始化错误的#define
以下是代码片段
#include "File2.h"
File 1.h
Int32 dataBuff[SCRATCH_BUFF_SZ];
File2.h
#define SCRATCH_BUFF_SZ ( SAMP_BUFF_LEN \
+ CORR_BUFF_LEN \
+ KERNEL_BUFF_LEN \
+ CE_BUFF_LEN \
)
我不明白这里有什么问题。错误指向#define
指令作为宏的每个参数行上的“预期表达式”def
预期的表达式:+或=等操作符需要其右操作数的表达式,但不会出现可识别的表达式。
确保有在SCRATCH_BUFF_SZ您的宏(macro is not broken)
之间没有新的生产线
喜定义为#define语句我删除新行字符,它仍然给同样的错误信息.. – user437777 2010-11-01 04:16:11
任何特殊字符? (还要小心空格)验证你所有的宏。 SAMP_BUFF_LEN,CORR_BUFF_LEN,KERNEL_BUFF_LEN,CE_BUFF_LEN – Alam 2010-11-01 04:18:23
验证.h文件的顺序。由于你的预处理器在.h中。确保你已经包含你的其他宏的头文件 – Alam 2010-11-01 04:23:12
我的猜测是在SCRACTCH_BUFF_SZ您的#define的一个常量没有被定义为这样认为吗?
即
SAMP_BUFF_LEN CORR_BUFF_LEN KERNEL_BUFF_LEN CE_BUFF_LEN
是不是你的想法吧?
两个建议:
- 你包括File3.h创建databuff过吗?
- 查看预处理器的输出。有了gcc,你可以用-E标志来做到这一点。
我仔细检查了每一件事,保持您的意见。 这是一个编译器配置错误。
我正在使用Code Composer Studio。我检查了预处理器选项,现在它工作正常。
我应该试着用其他编译器来隔离问题。
感谢您的时间! 谢谢
什么samp,corr,kernel,ce定义为?并且是在.h中的32声明中。或者.c? – 2010-11-01 04:07:24
您好感谢答复,SAMP_BUFF_LEN \ + CORR_BUFF_LEN \ + KERNEL_BUFF_LEN \ + CE_BUFF_LEN \ – user437777 2010-11-01 04:16:58
在File3.h – user437777 2010-11-01 04:17:20