眾所周知,你的程式編譯前要做的事就是掃瞄源**,對其做初步的轉換,產生新的源**提供給編譯器,這個過程就叫編譯預處理。這個處理過程由預處理器來完成,預處理器是在程式真正執行前由編譯器呼叫的預處理程式。
常見的預處理有以下三種:
:#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 的命令...