名为'unix'的变量值为1

时间:2016-11-19 18:43:15

标签: c unix

如果我写这个程序 -

main(){printf("%d",unix);}

这个编译正确,并打印1,虽然我曾预料到'unix unclared'或类似的错误。但如果我改成这个 -

main(){printf("%d",blah);}

这会产生错误 -

error: 'blah' undeclared (first use in this function)

正如所料。

那么,为什么unix不会产生错误,为什么它的值为1?我试过谷歌搜索但没有出现。

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);