This question already has answers here:
Closed 2 years ago.
is “unix” restricted keyword in C?
(6个答案)
Why does the C preprocessor interpret the word “linux” as the constant “1”?
(5个答案)
如果我写这个程序-
虽然我预期会出现“unix undeclared”或类似的错误,但这会正确编译并打印
这会产生错误-
如预期。
那么,为什么
编译失败(即使在
(6个答案)
Why does the C preprocessor interpret the word “linux” as the constant “1”?
(5个答案)
如果我写这个程序-
main(){printf("%d",unix);}
虽然我预期会出现“unix undeclared”或类似的错误,但这会正确编译并打印
1
。但如果我换成这个-main(){printf("%d",blah);}
这会产生错误-
error: 'blah' undeclared (first use in this function)
如预期。
那么,为什么
unix
不会产生错误,为什么它是值1?我试着用谷歌搜索,但什么也没找到。 最佳答案
#undef unix
int main(void)
{printf("%d\n",unix);
return 0;
}
编译失败(即使在
#include <stdio.h>
之后),因此它必须是一些内置的预处理器~#define
编译器输出:unix.c: In function ‘main’:
unix.c:4:16: error: ‘unix’ undeclared (first use in this function)
{printf("%d\n",unix);
关于c - 名为“unix”的变量的值为1 [duplicate],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40696613/
10-14 03:05