預處理器運算子作用在預處理階段,在#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...