如果我写这个程序 -
main(){printf("%d",unix);}
这个编译正确,并打印1
,虽然我曾预料到'unix unclared'或类似的错误。但如果我改成这个 -
main(){printf("%d",blah);}
这会产生错误 -
error: 'blah' undeclared (first use in this function)
正如所料。
那么,为什么unix
不会产生错误,为什么它的值为1?我试过谷歌搜索但没有出现。
答案 0 :(得分: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);