如果編譯器在編譯cpp文件那么__cplusplus 就會(huì)被定義 如果是一個(gè)c文件在被編譯那么__STDC__就會(huì)被定義
__STDC__是預(yù)定義宏。當(dāng)它被定義后,編譯器將按照ansic標(biāo)準(zhǔn)來(lái)編譯你的c程序。
ANSIC標(biāo)準(zhǔn)定義了以下6種可供C語(yǔ)言使用的預(yù)定義宏:
__LINE__ 在源代碼中插入當(dāng)前源代碼行號(hào)
__FILE__ 在源代碼中插入當(dāng)前源代碼文件名
__DATE__ 在源代碼中插入當(dāng)前編譯日期〔注意和當(dāng)前系統(tǒng)日期區(qū)別開(kāi)來(lái)〕
__TIME__ 在源代碼中插入當(dāng)前編譯時(shí)間〔注意和當(dāng)前系統(tǒng)時(shí)間區(qū)別開(kāi)來(lái)〕
__STDC__ 當(dāng)要求程序嚴(yán)格遵循ANSIC標(biāo)準(zhǔn)時(shí)該標(biāo)識(shí)符被賦值為1。
__cplusplus
標(biāo)識(shí)符__LINE__和__FILE__通常用來(lái)調(diào)試程序;
標(biāo)識(shí)符__DATE__和__TIME__通常用來(lái)在編譯后的程序中加入一個(gè)時(shí)間標(biāo)志,以區(qū)分程序的不同版本;
當(dāng)要求程序嚴(yán)格遵循ANSIC標(biāo)準(zhǔn)時(shí),標(biāo)識(shí)符__STDC__就會(huì)被賦值為1;