#ifdef:它是if define 的簡(jiǎn)寫(xiě)
#ifndef:它是if not define 的簡(jiǎn)寫(xiě)
它們都是宏定義,確切的說(shuō)是預(yù)處理功能三種(宏定義、文件包含、條件編譯)中的一種----條件編譯
預(yù)編譯指令?#if?#else?,#ifndef...的意義是條件編譯,只對(duì)后面的代碼起作用.
在頭文件編寫(xiě)類(lèi)如#ifndef?的語(yǔ)句只是為了防止該頭文件被其他頭文件多次包含.
在頭文件編寫(xiě)類(lèi)如#ifndef?的語(yǔ)句?只是對(duì)外部變量,類(lèi)型的聲明有作用.
常見(jiàn)的一些形式:
#ifdef? A
?? code1
#endif
它的作用是:如果宏定義了A,則執(zhí)行 code1
#ifndef A
#define A
? ? code 1
#else
? ? code 2
#endif
它的作用是:當(dāng)A沒(méi)有由#define定義過(guò),則編譯 code1 ,否則編譯 code 2
#if 表達(dá)式
?? code 1
#else
? ? ?? code? 2
#endif
它的作用是:當(dāng)表達(dá)式值為真時(shí),編譯 code 1,否則則編譯code? 2。當(dāng)沒(méi)有程序段2時(shí),直接是#if---#endif