C語言預處理中的 和 運算子

2021-05-24 03:29:53 字數 629 閱讀 3676

3.#運算子

出現在巨集定義中的#運算子把跟在其後的引數轉換成乙個字串。有時把這種用法的#稱為字串化運算子。例如:

#definepaste(n)"adhfkj"#n

main()

巨集定義中的#運算子告訴預處理程式,把源**中任何傳遞給該巨集的引數轉換成乙個字串。所以輸出應該是adhfkj15。

4.##運算子

##運算子用於把引數連線到一起。預處理程式把出現在##兩側的引數合併成乙個符號。看下面的例子:

#define concat(a,b) a##b

如果寫printf("%s/n", concat("x","y"));

這樣是會編譯報錯的。

pasting ""x"" and ""y"" does not give a valid preprocessing token

確實不是很懂。

例子:#include

#define paste(name) "obj_"#name

#define concat(a,b) a##b

int main()

C語言預處理運算子

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

C預處理運算子

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

預處理運算子

預處理器運算子作用在預處理階段,在 define中處理字元時使用。1 字串化運算子 對於需要轉義的字元如 或者 巨集處理運算子會自動插入到字元前 對於用空格隔開的字串,巨集處理過程會自動拼接各個字元 define fb x x bc fb a 結果為字串abc fb a 結果為字串 a bc 2 字...