1、為什么需要條件編譯
客戶的需求在不停地發生變化,一會兒需要這個功能,一會兒不需要這個功能。我們可以使用條件編譯來方便地裁剪功能。
2、條件編譯語句#if
條件編譯語句#if的形式是
1 #if expression
2 ... 3 #elif expression
4 ... 5 #elif expression
6 ... 7 #else
8 ... 9 #endif
其中#elif分支語句是可選的,#else分支語句也是可選的。
如果expression的邏輯值為“真”,則在預編譯階段,保留這段代碼。如果邏輯值為“假”,則在預編譯階段刪除這段代碼。
3、在條件編譯的基礎上使用defined()函數
形式為:
1 #if defined(some_macro)
2 some statements
defined()用來檢測some_macro這個宏是否定義,如果定義,則返回“真”,否則,返回“假”。根據返回的邏輯值,就可以決定是否在預編譯階段刪除與保留{some statements}
tip1: #if defined(some_macro) 可以簡寫為 #ifdef
tip2: #if !defined(some_macro)與#if defined(some_macro)行為相反,亦可簡寫為#ifndef
tip3: don't forget #endif