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 字...