如果編譯器在編譯cpp文件那么__cplusplus 就會被定義 如果是一個c文件在被編譯那么__STDC__就會被定義
__STDC__是預定義宏。當它被定義后,編譯器將按照ansic標準來編譯你的c程序。
ANSIC標準定義了以下6種可供C語言使用的預定義宏:
__LINE__ 在源代碼中插入當前源代碼行號
__FILE__ 在源代碼中插入當前源代碼文件名
__DATE__ 在源代碼中插入當前編譯日期〔注意和當前系統日期區別開來〕
__TIME__ 在源代碼中插入當前編譯時間〔注意和當前系統時間區別開來〕
__STDC__ 當要求程序嚴格遵循ANSIC標準時該標識符被賦值為1。
__cplusplus
標識符__LINE__和__FILE__通常用來調試程序;
標識符__DATE__和__TIME__通常用來在編譯后的程序中加入一個時間標志,以區分程序的不同版本;
當要求程序嚴格遵循ANSIC標準時,標識符__STDC__就會被賦值為1;