spi*_*ght 0 c arrays macros declaration c-preprocessor
我想知道为什么当我尝试使用#define我从编译器获取错误来声明数组时,使用文字而不是大小允许我这样做.
#define size 10;
int* waitingBench[size];
Run Code Online (Sandbox Code Playgroud)
你所拥有的将被预处理为:
int* waitingBench[10;];
// ^ notice this guy!
Run Code Online (Sandbox Code Playgroud)
从中删除分号#define.
(这size是一个非常糟糕的标识符#define.)
;从您的定义中删除.正如您目前所拥有的那样,这与int* waitingBench[10;];您所知道的不一致是等效的.
宏定义不是C指令,因此它们不需要用分号终止(除非使用行继续反斜杠,否则它们不能超过一行,并且它们不能与其他内容共享该行).