#的功能是將其後面的巨集引數進行字串化操作(stringfication),簡單說就是在對它所引用的
巨集變數通過替換後在其左右各加上乙個雙引號。
#define example(instr) printf("the input string is:\t%s\n",#instr)
#define example1(instr) #instr
當使用該巨集定義時:
example(abc); 在編譯時將會展開成:printf("the input string is:\t%s\n"
,"abc");
string str=example1(abc); 將會展成:string str=
"abc";
而##被稱為連線符(concatenator),用來將兩個token連線為乙個token。
C語言巨集定義時 井號 和 雙井號 的用法
在英語裡面叫做 pound 在c語言的巨集定義中,乙個 表示字串化 兩個 代表concatenate 在巨集定義中,的功能是將其後面的巨集引數進行字串化操作 stringfication 即無論後面的巨集變數是字串還是常量,都當成字元來處理。而 被稱為連線符 concatenator 用來將兩個to...
C語言巨集定義時 井號 和 雙井號 的用法
c語言中如何使用巨集c 和c 中的巨集 macro 屬於編譯器預處理的範疇,屬於編譯期概念 而非執行期概念 下面對常遇到的巨集的使用問題做了簡單總結。在c語言的巨集中,的功能是將其後面的巨集引數進行字串化操作 stringfication 簡單說就是在對它所引用的巨集變數通過替換後在其左右各加上乙個...
C語言巨集定義時 井號 和 雙井號 的用法
c語言中如何使用巨集c 和c 中的巨集 macro 屬於編譯器預處理的範疇,屬於編譯期概念 而非執行期概念 下面對常遇到的巨集的使用問題做了簡單總結。在c語言的巨集中,的功能是將其後面的巨集引數進行字串化操作 stringfication 簡單說就是在對它所引用的巨集變數通過替換後在其左右各加上乙個...