1. 程式人生 > >C/C++ 程式的編譯預處理和條件編譯指令詳解

C/C++ 程式的編譯預處理和條件編譯指令詳解

** 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