C/C++ 程式的編譯預處理和條件編譯指令詳解
阿新 • • 發佈:2018-11-15
** C/C++ 程式的編譯預處理和條件編譯指令詳解**
編譯預處理
(1)#include 包含指令作用為 將一個原始檔嵌入到當前原始檔中該點處。
#include<檔名> : 按標準方式搜尋,檔案位於C++系統目錄的include子目錄下
#include"檔名" : 首先在當前目錄中搜索,若沒有,再按標準方式搜尋。
(2)#define 巨集定義指令
定義符號常量,很多情況下已被const定義語句取代。
定義帶引數巨集,已被行內函數取代。
(3)#undef 用來刪除由#define定義的巨集,使之不再起作用。
條件編譯指令情況一
#if 常量表達式1
程式正文1 //當“ 常量表達式1”非零時編譯
#elif 常量表達式2
程式正文2 //當“ 常量表達式2”非零時編譯
#else
程式正文3 //其他情況下編譯
#endif
條件編譯指令情況二:
如果“識別符號”經#defined定義過,且未經undef刪除,則編譯程式段1;否則編譯程式段2。
#ifdef 識別符號
程式段1
#else
程式段2
#endif
條件編譯指令情況三:
如果“識別符號”未被定義過,則編譯程式段1;否則編譯程式段2。
#ifndef 識別符號
程式段1
#else
程式段2
#endif