條件編譯指令 | 說 明 |
---|---|
#if | 如果條件為真,則執行相應操作 |
#elif | 如果前面條件為假,而該條件為真,則執行相應操作 |
#else | 如果前面條件均為假,則執行相應操作 |
#endif | 結束相應的條件編譯指令 |
#ifdef | 如果該宏已定義,則執行相應操作 |
#ifndef | 如果該宏沒有定義,則執行相應操作 |
#if 條件表示式
程式段1
#else
程式段2
#endif
#include<stdio.h> #define RESULT 0//定義 RESULT 為 0 int main (void) { #if !RESULT //或者 0==RESULT printf("It's False!n"); #else printf("It's True!n"); #endif //標誌結束#if return 0; }上述程式中,首先定義了 RESULT 為 0,在 main 中使用 #if-#else-#endif 條件判斷語句,如果 RESULT 為 0,則輸出 It's False!,否則輸出 It's True!。本例輸出為:It's False!。
#ifndef 識別符號
#define 識別符號 替換列表
//...
#endif
#ifndef PI #define PI 3.1416 #endif上述程式段,用於判斷是否已經定義了名為 PI 的宏,如果沒有定義 PI,則執行如下宏定義。
#define PI 3.1416如果檢測到已經定義了 PI,則不再重複執行上述宏定義。
#ifndef _HEADNAME_H_
#define _HEADNAME_H_
//標頭檔案內容
#endif
#if 條件表示式1
程式段 1
#elif 條件表示式2
程式段 2
#else
程式段3
#endif
#ifdef 識別符號
程式段
#endif
#ifdef N #undef N //程式段 #endif功能:如果檢測到符號 N 已定義,則刪除其定義,並選中相應的程式段。