[英]Why doesn't GCC like this?
我正在努力学习C并发现自己陷入困境,没有抱怨:)
无论如何,我写了一个程序,GCC不喜欢它。 以下代码不是程序,但演示了问题:
#define MAXLINE = 1000
int main()
{
int tmp = MAXLINE;
char line[MAXLINE];
return 0;
}
编译时,我收到以下错误:
test.c:7:错误:'='标记之前的预期表达式
如果我用int 1000替换符号常量MAXLINE,一切正常。
到底是怎么回事?
当预处理器替换MAXLINE
的定义时,您的代码将更改为
int main()
{
int tmp = = 1000;
char line[= 1000];
return 0;
}
C预处理器非常笨! 不要在#defines中添加任何额外内容(不等于,没有分号,没有任何内容)
定义不需要等号:)
#define maxline 1000
不应该只定义=
#define MAXLINE 1000
#define
语句不需要等号。
它应该是:
#define MAXLINE 1000
使用#define而不是'=':
#define MAXLINE 1000
你应该有
#define MAXLINE 1000
你可以在这里阅读更多http://gcc.gnu.org/onlinedocs/cpp/Object_002dlike-Macros.html#Object_002dlike-Macros
#define MAXLINE 1000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.