c++提供的預處理功能:巨集定義、檔案包含和條件編譯;分別由巨集定義命令、檔案包含命令和條件編譯命令三種預處理命令來實現。
預處理命令
格 式: #預處理命令 …… (末尾不加分號)
作用域: 從定義點到程式結束
說 明: 預處理命令獨佔一行,位置任意
巨集定義命令
格 式:#define 巨集名[(形參)] 巨集體
#undef 巨集名[(形參)]
作用域:從定義點到#undef為止,否則到整個檔案結束。
說 明:巨集名可為不帶引數的識別符號或帶引數的識別符號;
巨集體可以是任意的字串行,也可是表示式或多個語句;
關鍵字undef的作用是取消識別符號的定義,被取消後的識別符號可另作他用;
形參不是變數,只是乙個符號代表,沒有型別標識;
巨集展開只是進行機械的替換。
實 例:
#define pi 3.1415
#define s(r) pi * r * r //定義巨集s(r),求半徑為r的圓的面積
檔案包含命令
格 式:#include 《檔名》 或 #include "檔名"
說 明:尖括號表示按系統標準庫路徑去檢索被包含的檔案;
雙引號表示首先在引用被包含檔案的原始檔所在檔案目錄中尋找被包含檔案,如果找不到被包含檔案,則按系統標準庫路徑尋找被
包含,或者按雙引號內指定的路徑檢索被包含檔案,若未指定路徑就在當前目錄尋找被包含檔案;
包含檔案有兩類:標頭檔案(.h)和原始檔(.cpp);
對系統檔案使用<>,對使用者自定義檔案使用""。
條件編譯命令
格 式:#if …… #endif
#if …… #else …… #endif
#if …… #elif …… #elif …… #else …… #endif
#ifdef …… #else …… #endif
#ifndef …… #else …… #endif
說 明:使用條件編譯,可以避免在乙個程式中重複包含某個標頭檔案。
c 預處理和預處理命令
預處理發生在編譯之前,預處理輸出的是乙個單一的檔案,這個檔案被送到編譯器,進行編譯。每條預處理命令都控制預處理器的行為。每條預處理命令佔據一行,有以下的格式 character 預處理命令 one of define,undef,include,if,ifdef,ifndef,else,elif,e...
C 預處理命令
和 操作符是和 define巨集使用的.使用 使在 後的首個引數返回為乙個帶引號的字串.例如,命令 define to string s s 將會使編譯器把以下命令 cout to string hello world endl 理解為 cout hello world endl 使用 鏈結 前後的...
C 預處理命令
預處理就是對原始檔進行編譯前,先對預處理部分進行處理,然後對處理後的 進行編譯。c 提供了豐富的預處理指令,主要包括如下幾種 define error if else elif endif ifdef ifndef undef line和 pragma。每個預處理指令均帶有符號 簡單來說,上面的這些...