看了這篇文章後了解了,但是文章中的例子比較特別,我在這裡加個注釋好了。
單井號就是將後面的 巨集引數 進行字串操作,就是將後面的引數用雙引號引起來
雙井號就是用於連線。
#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 voidquit_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...