在參數(shù)上重載宏我有兩個宏FOO2和FOO3:#define FOO2(x,y) ...#define FOO3(x,y,z) ...我想定義一個新的宏FOO詳情如下:#define FOO(x,y) FOO2(x,y)#define FOO(x,y,z) FOO3(x,y,z)但這不起作用,因?yàn)楹瓴粫?shù)超載。不修改FOO2和FOO3,有什么方法可以定義宏嗎?FOO(使用__VA_ARGS__或以其他方式)獲得同樣的調(diào)度效果FOO(x,y)到FOO2,和FOO(x,y,z)到FOO3?
3 回答

胡說叔叔
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個贊
##__VA_ARGS__
#define GET_MACRO(_0, _1, _2, NAME, ...) NAME #define FOO(...) GET_MACRO(_0, ##__VA_ARGS__, FOO2, FOO1, FOO0)(__VA_ARGS__)
- 3 回答
- 0 關(guān)注
- 550 瀏覽
添加回答
舉報
0/150
提交
取消