在預處理器中的特殊用法

2021-06-20 06:45:34 字數 725 閱讀 5821

#在預處理中有3個特殊用法:字串定義、字串串聯和標誌貼上。

1)字串定義的完成是用 #指示,它容許設乙個識別符號並把它轉化為字串,然而字串串聯發生在當兩個相鄰的字串沒有分隔符時,在這種情況下字串組合在一起。在寫調

試**時,這兩個特徵是非常有效的。

例如,

#define print(x) cout<<#x " = " << x << endl

當我們在**中要列印乙個表示式的值,比如a+b+c時,就可以直接呼叫print(a+b+c).

列印結果是:a+b+c=10。

這比自己手工輸入**,要高效:

cout<<"a + b + c = " << x << endl

2)標示貼上

可以將兩個字串連線在一起,作為乙個新的識別符號。如下面定義:

#define field(a) char* a##_string; int a##_size

在給定的字串後分別連線_string和_size,構成新的識別符號。

如下面的類定義中:

class record ;
實際生成的變數為:one_string, one_size, two_string, two_size, three_string, three_size。

總之,預處理玩的是文字替換的遊戲,#相當於是佔位符的作用。

預處理器(巨集的用法)

編譯器在對巨集預處理時,會 1.將標頭檔案展開 2.去掉注釋 3.巨集替換 4.條件編譯 巨集替換時應注意的幾點 1 會把它兩邊的字元轉換為乙個字元 2 巨集要替換乙個函式或者引數時,需要加上 3 鄰近字元連線原則 4 value value指代乙個變數名,會將該字面值轉換為乙個字串 value 1...

C 預處理器指令的用法

c 預處理器指令是在編譯時呼叫的。預處理器指令 preprocessor directive 告訴c 編譯器要編譯哪些 並指出如何處理特定的錯誤和警告。c 預處理器指令還可以告訴c 編輯器有關 組織的資訊。1.定義符號和取消符號定義的預處理指令 define 和 undef 預處理指令都以 號開頭並...

C 預處理器指令的用法

c 預處理器指令是在編譯時呼叫的。預處理器指令 preprocessor directive 告訴c 編譯器要編譯哪些 並指出如何處理特定的錯誤和警告。c 預處理器指令還可以告訴c 編輯器有關 組織的資訊。1 定義符號和取消符號定義的預處理指令 define 和 undef 預處理指令都以 號開頭並...