2013年4月17日 星期三

# 及 ## 應用於C Macro

我們使用#把巨集引數變為一個字串,用##把兩個巨集引數貼合在一起. 

將傳入的參數名稱變化

假設你想要把傳入參數名稱再變化,用 ## 穿插其中:

    #define print_three_num(num)
         do {
             print_num(num);
             print_num(num##2);
             print_num(num##3);
         } while (0)


因為不能用 num2 來表示 num+ "2",所以你必須用 ##。當你傳入 print_three_num(name) 時,他會展開成:

    print_num(name);
    print_num(name2);
    print_num(name3);

沒有留言: