c - 语法错误 : missing ']' before ';' Array declaration error in C

标签 c arrays array-initialization

我正在用 C 语言编写,使用的是 Visual C++。

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

#define SIZE 3;
int myMatrix[SIZE][SIZE];
void funcMatrix(int M[SIZE][SIZE]);

我得到的错误:

error C2143: syntax error : missing ']' before ';' 
error C2059: syntax error : ']'

我试过在 main 内部和外部以不同方式声明常量。它仍然不起作用。 如果有人能帮助我,我将不胜感激......

最佳答案

你应该使用#define SIZE 3

预处理器用作原始字符串替换,因此使用 #define SIZE 3; 你的 SIZE 被替换为 3; 并且你得到:

int myMatrix[3;][3;];
void funcMatrix(int M[3;][3;]);

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

关于c - 语法错误 : missing ']' before ';' Array declaration error in C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14743263/

相关文章:

python - 在 C 中调用 Python-3 函数

ios - 将多个值存储到 NSDictionary 中的单个键

c++ - std::array 复制语义

java - 在没有数组变量的情况下迭代java中的静态数组

c# - 在循环中使用方法 Marshal.PtrToStructure 时出现访问冲突异常

c - 基本 C 程序已停止工作 : just in time debugger

c 字符串返回类型不正确?

arrays - 索引嵌入文档的键到底意味着什么?

c# - 所有可能的数组初始化语法

arrays - F#:为什么 Array.createZero 这么快?