C 巨集定義中 和 的區別

2021-04-30 01:55:56 字數 413 閱讀 7638

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.注意事項 當巨集引數是另乙個巨集的時候,...