預處理運算子

2021-08-17 02:51:20 字數 483 閱讀 9044

預處理器運算子作用在預處理階段,在#define中處理字元時使用。

1、#:字串化運算子

對於需要轉義的字元如「或者\,巨集處理運算子會自動插入到字元前

對於用空格隔開的字串,巨集處理過程會自動拼接各個字元

#define fb(x) #x "bc"

fb(a); 結果為字串abc

fb('a');結果為字串'a'bc

2、#@,字元化運算子

巨集處理會將該運算子實參處理為單個字元

#define fc(x) #@x

fc(a);結果為字元a

fc('a');結果為字元a

3、##,標記貼上運算子

將##標記巨集處理變數替換為相應的實參

#define fa(x) printf("%d",a##x)

fa(2);  輸出變數a2的值

C預處理運算子

預處理還需要運算子?有沒有搞錯?沒有搞錯,預處理是有運算子,而且還不止乙個 單井號 字串化運算子。雙井號 連線運算子 字元化運算子。接下來我們會分別說明一下他們的用法.1.字串化運算子 用於建立字串,運算子後面應該跟乙個形參 中間可以有空格或tab 例如 cpp view plain copy pr...

C語言預處理運算子

預處理還需要運算子?有沒有搞錯?沒有搞錯,預處理是有運算子,而且還不止乙個 單井號 字串化運算子。雙井號 連線運算子 字元化運算子。接下來我們會分別說明一下他們的用法.1.字串化運算子 用於建立字串,運算子後面應該跟乙個形參 中間可以有空格或tab 例如 define str s s puts st...

C C 幾個有用的預處理運算子

有三種運算子只能用在預處理指令中,它們是字串化運算子 貼上運算子 和字元化運算子 字串化運算子 在巨集引數的前面放乙個 會使編譯器在展開巨集時插入引數的名字而不是它的值。其主要效果是把引數的名字轉換為字串。下面的範例演示了字串化運算子的語法 define stringlize ivalue prin...