關於c語言巨集定義中的單 井號 和雙 井號

2022-03-30 22:35:55 字數 860 閱讀 5371

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

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

雙井號就是用於連線。

#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;

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

#include void

quit_command()

void

help_command()

struct

command

; #define command(name)

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

commands[

0].function();

}

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

C語言巨集與單井號( )和雙井號( )

說明 以前知道,但是沒系統的看過,大神們的 經常這種技巧,現在系統總結一下。c 和c 中的巨集 macro 屬於編譯器預處理的範疇,屬於編譯期概念 而非執行期概念 下面對常遇到的巨集的使用問題做了簡單總結。關於 和 在c語言的巨集中,的功能是將其後面的巨集引數進行字串化操作 stringficati...

C語言巨集與單井號( )和雙井號( )

分類 程式設計基礎 2011 10 20 20 10 11977人閱讀收藏 舉報 語言c token command struct 目錄 c 和c 中的巨集 macro 屬於編譯器預處理的範疇,屬於編譯期概念 而非執行期概念 下面對常遇到的巨集的使用問題做了簡單總結。關於 和 在c語言的巨集中,的功...

C語言巨集定義時 井號 和 雙井號 作用

的功能是將其後面的巨集引數進行字串化操作 stringfication 簡單說就是在對它所引用的 巨集變數通過替換後在其左右各加上乙個雙引號。define example instr printf the input string is t s n instr define example1 ins...