c - 为什么在下标中使用 CONSTANT 时会出现错误?

标签 c

例如,我有以下代码:

#define MAX_CLIENTS 100;

void main() {
    char* pick[MAX_CLIENTS];
    int* points[MAX_CLIENTS];
    return 0;
}

尝试编译它会引发以下错误:

file.c:4: error: expected ‘]’ before ‘;’ token
file.c:5: error: expected ‘]’ before ‘;’ token

如果我将下标中的 MAX_CLIENTS 替换为文字 100 ,那么错误就消失了。

为什么?

最佳答案

#define MAX_CLIENTS 100; 中的 ; 是多余的,删除它就可以了。

请记住,#define 是一个预处理器命令,它将 MAX_CLIENTS 替换为 100; - 您不需要在那里使用分号,只有 100 个。

关于c - 为什么在下标中使用 CONSTANT 时会出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14054624/

相关文章:

c - 连接开关的输出

java - 跨编程语言和机器序列化数字的库

c - 如何在 Linux 中检测是否有任何其他实体/进程正在写入文件?

C:计算正位的偷偷摸摸的方法?

将 X 字节写入文件描述符的正确方法,其中 X 是无符号 64 位整数

c++ - 如何在 C 宏中连接变量字符串和文字字符串?

c - 如何将两个符号相反的 float 相加?

c - 在抽象语法树中递归执行管道

c++ - 是否可以直接在浏览器中运行 C 代码?

子父进程与管道的进程间通信