2016-11-19 58 views
1

如果我寫這個程序 -變量命名爲「UNIX」的值爲1

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

這個編譯正確,並打印1,雖然我曾預計的「UNIX未申報」或類似的錯誤。但是,如果我改變這個 -

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

預期這使無差錯

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

那麼,爲什麼unix不會產生錯誤,爲什麼它的值爲1?我試過谷歌搜索,但沒有出現。

+0

預處理器定義 –

+2

見http://stackoverflow.com/questions/3770322/IS-UNIX的受限關鍵字在-C – acraig5075

回答

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