关于C#:名为’unix’的变量值为1

Variable named 'unix' has value 1

本问题已经有最佳答案,请猛点这里访问。

如果我写这个程序 -

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

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

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

这给出了错误 -

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

正如所料。

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


1
2
3
4
5
6
#undef unix
int main(void)
{printf("%d
"
,unix);
return 0;
}

无法编译(即使在#include 之后,因此,它必须是一些内置的预处理器~#define编译器输出:

1
2
3
4
unix.c: In function ‘main’:
unix.c:4:16: error: ‘unix’ undeclared (first use in this function)
 {printf("%d
"
,unix);