我在C中做了以下几点
#define MAX_DATA_SIZE 500;
struct reliable_state {
char dataBuffer[MAX_DATA_SIZE];
}
Run Code Online (Sandbox Code Playgroud)
即我想在结构声明中使用#define常量作为数组大小.但上面的代码给出了奇怪的错误
.c:36: error: expected ‘]’ before ‘;’ token
Run Code Online (Sandbox Code Playgroud)
那么有没有其他方法可以做到这一点?
是的你可以,只需删除';' 在您的定义行中:
#define MAX_DATA_SIZE 500
Run Code Online (Sandbox Code Playgroud)
使用define,编译器实际上会"看到"您的结构定义为
char dataBuffer[500;];
Run Code Online (Sandbox Code Playgroud)
这显然是错误的.