c++巨集定義中##和#的區別
我們用一例項來學習一下c++巨集定義中的## 和#的區別。
首先我們來定義乙個巨集:#define strcpy(a, b) strcpy(a ## _p, #b)
1. 巨集定義裡面有個##表示把字串聯在一起。如:
#include
#define cat(x,y) x##y
int main()
2.巨集定義中的#表示將其變為字串。如:
#include
#include
#define strcpy(a, b) strcpy(a ##_p, #b)
int main()
結果為把b變成了字串,可見#b的功能是將所有型別名都變成了字串。
另,a、_p和##有沒有空格不影響結果。
巨集定義中 和 的區別
1 構串操作符 將右邊的巨集引數做整體的字串替換。define string x x x define text x a x a int main text test 巨集展開 a test a 構造字串 a test a atesta string test 巨集展開 test test 構造字串...
C語言巨集定義中 , 和 的用法
1 一般用法 把巨集引數變為乙個字串,把巨集引數變為乙個字元,把兩個巨集引數貼合在一起。include include define str s s 與引數之間可以有空格 define tochar c c define cons a,b int a e b 與引數之間可以有空格 int main ...
巨集定義中 和 的用法
1.前言 使用 把巨集引數變為乙個字串,用 把兩個巨集引數貼合在一起.2.一般用法 include include using namespace std define str s s define cons a,b int a e b int main 3.注意事項 當巨集引數是另乙個巨集的時候,...