c語言中巨集定義 和 的作用

2022-09-06 20:39:08 字數 944 閱讀 3798

**:

看了這篇文章後了解了,但是文章中的例子比較特別,我在這裡加個注釋好了。

單井號就是將後面的 巨集引數 進行字串操作,就是將後面的引數用雙引號引起來

雙井號就是用於連線。

#define print(name) printf("token"#name"=%d\n", token##name)

呼叫時候使用: print(9);

巨集展開即為: printf("token"#9"=%d\n",token##9);

#9即為"9",token##9即為: token9

整個為: printf("token""9""=%d\n",token9);

之前定義過token9為9,所以就是輸出 token9=9;

解釋到這裡應該就明白單#和雙#怎麼用了。附上**,還是摘自上面的連線。

1 #include 2

void

quit_command()

5void

help_command()

8struct

command

9;

13#define command(name)

14#define print(name) printf("token"#name"=%d\n", token##name)

15main();

22 commands[0

].function();

23 }

**中還有一點就是呼叫那個函式指標的部分。解釋一下,command巨集定義是有{}的,第乙個#name,就是賦值給結構體command的char *name,第二個 name##_command,用來拼出函式名,賦值給結構體中的函式指標,之後在commands[0].function()中通過函式指標來呼叫函式。

c 語言中的巨集定義

巨集定義 巨集定義是c提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯 1.不帶引數的巨集定義 巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字串 其中的識別符號就是所謂的 符號常量,也稱為 巨集名 預處理 預編譯 工作也叫做巨集展開 將巨...

C語言中的巨集定義

下列c 中包含兩種巨集定義,例如 include define max connection 1000 define mng port 5000 define min a,b a b a b define max a,b a b a b int main 方法1 gcc e 引數預編譯 gcc e ...

C語言中的巨集定義

c語言中的巨集定義 c語言中的巨集定義也叫做預處理命令,預處理命令是c語言本身的組成部分,不能直接對它們進行編譯。1.基本概念 1 預處理不是c語句,是在編譯前進行的 2 預處理功能主要用於下3種情況 巨集定義 檔案包含 條件編譯 3 巨集是在編譯前進行的,程式不能直接對它們進行編譯,由預處理程式先...