0

我想知道为什么当我尝试使用#define我从编译器中得到错误来声明数组时,而使用文字而不是大小允许我这样做。

some_name.h:

#define size 10;

int* waitingBench[size];
4

3 回答 3

7

您所拥有的将被预处理为:

int* waitingBench[10;];
//                  ^ notice this guy!

从 中删除分号#define

(并且size是一个非常糟糕的标识符#define。)

于 2012-10-13T10:45:48.537 回答
5

;从您的定义中删除。正如您目前拥有的那样,这与int* waitingBench[10;];您知道是不正确的相同。

宏定义不是 C 指令,因此它们不需要以分号结尾(并且它们不能超过一行,除非使用了续行反斜杠,并且它们不能与其他东西共享该行)。

于 2012-10-13T10:45:37.323 回答
2

消除 ”;” 到底:

#define size 10
于 2012-10-13T10:45:46.673 回答