Monday, November 16, 2009

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

一些 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()

No comments: