C C 編譯預處理指令

2021-05-26 01:37:03 字數 831 閱讀 8883

眾所周知,你的程式編譯前要做的事就是掃瞄源**,對其做初步的轉換,產生新的源**提供給編譯器,這個過程就叫編譯預處理。這個處理過程由預處理器來完成,預處理器是在程式真正執行前由編譯器呼叫的預處理程式。

常見的預處理有以下三種:

:#include 是一種最為常見的預處理,主要是做為檔案的引用組合源程式正文。

巨集替換: #define,這是最常見的用法,它可以定義符號常量、函式功能、重新命名、字串的拼接等各種功能。        

:#if,#ifndef,#ifdef,#elif,#endif,#undef等也是比較常見的預處理,主要是進行編譯時進行有選擇的挑選,注釋掉一些指定的**,以達到版本控制、防止對檔案重複包含的功能。

#ifndef incfile_h_

#define incfile_h_

/*...incfile.h實際的內容寫在這裡...*/

#endif

int main()

#define msg(x) puts(text ## x)

int main()

條件式編譯區域始於#if, #ifdef或#ifndef等預處理指令,結束於#endif預處理指令。條件式編譯區域內可以有任意數目的#elif預處理指令,以及最多乙個#else預處理指令,以#if開始的條件式編譯區域具有下面的格式:

/*...*/

#endif

#define macro_a

/*...*/

#endif

#error "lex is not defined"

#endif

C C 編譯預處理指令

眾所周知,你的程式編譯前要做的事就是掃瞄源 對其做初步的轉換,產生新的源 提供給編譯器,這個過程就叫編譯預處理。這個處理過程由預處理器來完成,預處理器是在程式真正執行前由編譯器呼叫的預處理程式。常見的預處理有以下三種 檔案包含 include 是一種最為常見的預處理,主要是做為檔案的引用組合源程式正...

C C 預處理指令

預處理指令是以 號開頭的 行。號必須是該行除了任何空白字元外的第乙個字元。後是指令關鍵字,在關鍵字和 號之間允許存在任意個數的空白字元。整行語句構成了一條預處理指令,該指令將在編譯器進行編譯之前對源 做某些轉換。1.和 1 define pi 3.1415926 2 define paste n a...

C C 預處理指令

預處理指令 preprocessor directives define undef ifdef ifndef if endif else and elif line error include 預定義識別符號 pragma 預處理指令是我們寫在程式 中的給預處理器 preprocessor 的命令...