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