【发布时间】:2012-10-04 01:15:52
【问题描述】:
我想知道为什么当我尝试使用 #define 声明数组时,编译器会出错,而使用文字而不是大小允许我这样做。
some_name.h:
#define size 10;
int* waitingBench[size];
【问题讨论】:
标签: c arrays macros declaration c-preprocessor
我想知道为什么当我尝试使用 #define 声明数组时,编译器会出错,而使用文字而不是大小允许我这样做。
#define size 10;
int* waitingBench[size];
【问题讨论】:
标签: c arrays macros declaration c-preprocessor
您所拥有的将被预处理为:
int* waitingBench[10;];
// ^ notice this guy!
从#define 中删除分号。
(而size 是#define 的一个非常糟糕的标识符。)
【讨论】:
size 的注释 :)
从您的定义中删除 ;。正如您目前拥有的那样,这与您知道不正确的 int* waitingBench[10;]; 等效。
宏定义不是 C 指令,因此它们不需要以分号结束(并且它们不能超过一行,除非使用了续行反斜杠,并且它们不能与其他东西共享该行) .
【讨论】:
删除“;”最后:
#define size 10
【讨论】: