我正在尝试学习 C,但发现自己陷入了困境,没有提示:)
无论如何,我写了一个程序,GCC 不喜欢它。以下代码不是程序,而是演示问题:
#define MAXLINE = 1000
int main()
{
int tmp = MAXLINE;
char line[MAXLINE];
return 0;
}
编译时出现以下错误:
test.c:7: error: expected expression before ‘=’ token
如果我用 int 1000 替换符号常量 MAXLINE,一切正常。
这是怎么回事?
最佳答案
当预处理器替换您的 MAXLINE
定义时,您的代码将更改为
int main()
{
int tmp = = 1000;
char line[= 1000];
return 0;
}
C 预处理器非常愚蠢!不要在 #defines 中添加任何额外内容(没有等号,没有分号,什么都没有)
关于c - 为什么海湾合作委员会不喜欢这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1429746/