2016-11-19 2 views
1

を持っている -変数は値1

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

これは正しくコンパイルし、私は「UNIX宣言されていない」または同様のエラーを予想していたものの、1を印刷します。私は

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

this-に変更すると、予想通りしかしこれは

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

エラー - 提供します。

なぜ、unixはエラーを生成しないのですか。なぜそれが値1ですか?私はグーグルリングを試みたが、何も出てこなかった。

+0

プリプロセッサは定義 –

+2

http://stackoverflow.com/questionsを参照してください。/3770322/is-unix-restricted-keyword-in-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); 
関連する問題