C/C++語言巨集定義##連線符和符#的使用
C/C++語言巨集定義##連線符和符#的使用
(一)C/C++語言巨集定義##連線符和符#的使用
(1) ## 連線符:在帶引數的巨集定義中, 用來將兩個Token連線為一個Token,從而形成一個新的子串。注意這裡連線的物件是Token就行,而不一定是巨集的變數。
例子:
#define XNAME(n) x ## n
當出現int XNAME(1) = 14;時,會被替換為:int x1=14;
(2)#符:是將其後面的巨集引數進行字串化操作(Stringfication),即把巨集引數變為一個字串,簡單說就是在對它所引用的巨集變數 通過替換後在其左右各加上一個雙引號。#符,也就是把傳遞過來的引數當成字串進行替代。
例子:
#define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning: " #EXP "/n"); } while(0)
當出現WARN_IF (divider == 0);時,相當於如下替換:do {
if (divider == 0)
fprintf(stderr, "Warning" "divider == 0" "/n");
} while(0);
可見#EXP將會被替換為【“divider == 0"】相關文章
- C語言巨集定義##連線符和#符的使用C語言
- C語言(巨集定義)C語言
- C++語言基礎(2)-new和delete操作符C++delete
- C++巨集定義#defineC++
- C語言巨集定義中#define中的井號#的使用C語言
- C語言symlink()函式:建立檔案符號連線C語言函式符號
- 有關C語言的知識---巨集定義用法C語言
- C++中*和&符號C++符號
- c語言巨集的使用C語言
- C++中巨集定義#define的用法C++
- c/c++標準預定義巨集C++
- C 語言巨集定義 #define 的理解與資料整理
- C語言系列(二)有符號數和無符號數詳解C語言符號
- C語言中的*和&符號C語言符號
- Solidity語言學習筆記————19、函式可見性定義符、修飾符、保留字和語法Solid筆記函式
- C語言-識別符號命名C語言符號
- c 語言中巨集定義和定義全域性變數的區別變數
- C語言巨集中"#"和"##"的用法C語言
- C語言的本質(19)——預處理之一:巨集定義C語言
- 解析C++連結錯誤:未定義引用和未解析符號的完整解決方案C++符號
- Shell 中的連線符:&&、||
- C語言零基礎教程之預處理和巨集定義篇C語言
- Go 語言指標符號 *和&Go指標符號
- C++ | VS2017 C++專案配置使用的常見巨集定義C++
- 命令注入-命令的連線符【‘&’‘&&’‘||’‘|’】的含義及其用法
- pl/sql裡的左連線和右連線符號“+”SQL符號
- SQL連線符與使用字串SQL字串
- SCSS 字串連線符CSS字串
- C語言學習第18篇---巨集定義與使用 / 條件編譯使用分析C語言編譯
- 1413: C語言合法識別符號C語言符號
- C++ 預設引數和佔位符C++
- 連結使用的符號符號
- 符號(註釋符+轉義符+接續符)符號
- C++操作符過載C++
- C++ 操作符過載C++
- c語言的定義與宣告C語言
- C語言巨集和函式淺析C語言函式
- c#換行符及空格符(轉義字元)C#字元