为什么GCC中的C预处理器将单词linux(小写字母)解释为常量1?
test.c的:
#include <stdio.h>
int main(void)
{
int linux = 5;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果$ gcc -E test.c(预处理阶段后停止):
....
int main(void)
{
int 1 = 5;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
哪个 - 当然 - 会产生错误.
(顺便说一句:#define linuxstdio.h文件中没有.)