一、#define和#undef宏細節
宏生命周期從#define開始到#undef結束
二、#error
編譯程序時只要遇到#error就生成輸出錯誤信息,同時停止編譯
三、#pragma message("文本信息")
當我們在程序中定義了許多宏來控制源代碼時,大家可能會忘記有沒有正確 設置這些宏,可以通過下面代碼判斷
四、宏定義注釋
不可行,見程序
# include輸出:#define BSC // #define BMC /* #define EMC */ #define _RUN #define ewaece #define sizeof //下面這個編譯錯誤,上面兩個可以編譯通過 //#define int #if 0 #error 編譯程序時只要遇到#error就生成輸出錯誤信息,同時停止編譯 #endif int main() { // BSC mmmm // BMC daew EMC //注釋優先於宏定義被預處理,當展開宏之前注釋已經處理完畢,這是再展開宏出現//和/**/就會出錯 # define r 1 //#和define之間可以空格,#define不一定要在最開頭 /* #pragma message("消息文本") * 當我們在程序中定義了許多宏來控制源代碼時,大家可能會忘記有沒有正確 * 設置這些宏,可以通過下面代碼判斷 */ #ifdef _RUN #pragma message("_RUN macro activated!") #endif #define X 3 #define Y X*2 #undef X #define X 2 int z = Y; printf("z = %d\n",z); return 0; }