有誰知道怎麼決絕這樣的事情...
我有很多重複的宏作爲: -
#define MYMACRO1(x) Do1(x)
#define MYMACRO2(x,y) Do2(x, y)
#define MYNEXTMACRO1(x) Do1(x)
#define MYNEXTMACRO2(x,y) Do2(x, y)
上面的代碼工作正常,但我想寫一個宏來創建宏(一個元宏)。
例如: -
#define MYMETAMACRO(name) \
#define #name1(x) Do1(x) \
#define #name2(x,y) Do2(x, y) \
,這樣我可以做到: -
MYMETAMACRO(MYMACRO);
MYMETAMACRO(MYNEXTMACRO);
,然後: -
MYMACRO1(2);
MYMACRO2(2,3);
MYNEXTMACRO1(4);
MYNEXTMACRO2(4, 5);
在#define
預處理炸彈出來,因爲它認爲它是宏的缺失參數。
不與c預處理器一起工作只是讓你渴望lisp? – Stephen 2010-05-27 02:07:00
其他問題的答案在技術上可能是正確的,但我不認爲它們是完整的,所以我不會投票結束。 – WhirlWind 2010-05-27 02:12:31
@Whirlwind:你*可以*總是添加一個新的,更完整的答案給另一個問題... – sth 2010-05-27 02:16:34