例如,我有以下代码:
#define MAX_CLIENTS 100;
void main() {
char* pick[MAX_CLIENTS];
int* points[MAX_CLIENTS];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
试图编译它会引发这些错误:
file.c:4: error: expected ‘]’ before ‘;’ token
file.c:5: error: expected ‘]’ before ‘;’ token
Run Code Online (Sandbox Code Playgroud)
如果我使用文字替换下标中的MAX_CLIENTS 100,则错误消失.
为什么?
在;中#define MAX_CLIENTS 100;是多余的,删除它,你应该罚款.
请记住,这#define是一个预处理器命令,替换MAX_CLIENTS为100;- 你不需要分号,只有100分.
问题是您的define上的尾部分号,这会导致宏扩展为
char* pick[100;];
// ^-- cause of compiler errors
Run Code Online (Sandbox Code Playgroud)
从你的定义中删除分号,一切都应该很好.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |