数组初始化错误#define

时间:2010-11-01 04:00:08

标签: c arrays initialization c-preprocessor

我正在使用C中的#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指令指向Macro def

的每个参数行上的“Expected an Expression”

4 个答案:

答案 0 :(得分:1)

两个建议:

  1. 在创建数据库之前是否包含File3.h?
  2. 查看预处理器的输出。使用gcc,您可以使用-E标志执行此操作。

答案 1 :(得分:0)

预期表达式:诸如+或=之类的运算符需要其右操作数的表达式,但不会出现可识别的表达式。

确保SCRATCH_BUFF_SZ中的宏(macro is not broken)之间没有新行

答案 2 :(得分:0)

我的猜测是你在SCRACTCH_BUFF_SZ中的一个#defined常量没有按照你的想法定义?

SAMP_BUFF_LEN  CORR_BUFF_LEN  KERNEL_BUFF_LEN  CE_BUFF_LEN

不是你想的那样?

答案 3 :(得分:0)

我仔细检查了所有保留你的评论的东西。 这是编译器配置错误。

我正在使用Code Composer Studio。我检查了它中的预处理器选项,现在它工作正常。

我应该尝试使用其他编译器来解决问题。

欣赏你的时间! 感谢