星期三, 11月 01, 2006

一些 C Macro 的技巧 (Part III:將傳入的參數名稱變化)

假設你想要把傳入參數名稱再變化,用 ## 穿插其中:
#define print_three_var(var)
do {
print_var(var);
print_var(var##2);
print_var(var##3);
} while (0)

因為你不能用 var2 來表示 var + "2",所以你必須用 ##。當你傳入 print_three_var(telephone) 時,他會展開成:
print_var(telephone);
print_var(telephone2);
print_var(telephone3);

補充一下:這邊的 print_var() 是 Part II 裡的 print_var()

1 則留言:

ⓐⓘⓡⓔⓝ 提到...

多謝~
剛好找資料找到這,解決了我的問題 :)