语法错误:在';'之前缺少']' C中的数组声明错误

kyp*_*ype 1 c arrays array-initialization

我正在使用Visual c ++编写c语言.

编译器给出了以下代码的错误:

#define SIZE 3;
int myMatrix[SIZE][SIZE];
void funcMatrix(int M[SIZE][SIZE]);
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

error C2143: syntax error : missing ']' before ';' 
error C2059: syntax error : ']'
Run Code Online (Sandbox Code Playgroud)

我试过在主要和外部内部以不同方式声明常量.它仍然无法正常工作.如果有人可以帮助我,真的很感激...

Pet*_*lin 10

你应该用#define SIZE 3.

预处理器用作原始字符串替换,因此#define SIZE 3;SIZE替换为3;您,并获得:

int myMatrix[3;][3;];
void funcMatrix(int M[3;][3;]);
Run Code Online (Sandbox Code Playgroud)

作为最终结果,因此错误.这是一个常见错误,然后您习惯于放置;在C表达式的末尾.然而,预处理器 #define -s实际上不是C代码,而是在编译之前发生的简单(或不那么简单)字符串处理操作.