巨集定義中 和 的區別

2021-10-17 23:21:58 字數 1055 閱讀 9546

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--->構造字串--->"test""test" --->"testtest"

輸出:testtest

atesta

注意:#後面必須要跟巨集引數

#define string(x) #x#       //報錯,應輸入巨集引數名

2##合併操作符

## 將左右兩邊的引數做整體的文字拼接替換

#define str_name(name) class##name

#define merge(a,b) a##b##a

#define classtest "cat"

int main()

#define

str_name

(name

) ##name

//報錯:"##"不能為巨集定義第一項

注意:##既不能是巨集定義的第乙個字元,也不能是最後乙個字元

#define

str_name

(name

) name

## //

報錯:"##"不能為巨集定義最後一項

C 巨集定義中 和 的區別

c 巨集定義中 和 的區別 我們用一例項來學習一下c 巨集定義中的 和 的區別。首先我們來定義乙個巨集 define strcpy a,b strcpy a p,b 1.巨集定義裡面有個 表示把字串聯在一起。如 include define cat x,y x y int main 2.巨集定義中的...

巨集定義中 和 的用法

1.前言 使用 把巨集引數變為乙個字串,用 把兩個巨集引數貼合在一起.2.一般用法 include include using namespace std define str s s define cons a,b int a e b int main 3.注意事項 當巨集引數是另乙個巨集的時候,...

巨集定義中 和 符號的使用和巨集定義展開問題

程式如下 include define f a,b a b define g a a define h a g a intmain 答案 第一行 12 第二行 f 1,2 說明 1 關於符號 和 兩個符號都只能用於預處理巨集擴充套件。不能在普通的原始碼中使用它們,只能在巨集定義中使用。簡單的說,是把...