8
在参数数量上重载宏
我有两个宏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) 但这是行不通的,因为宏不会在参数数量上重载。 无需修改FOO2和FOO3,是有一些方法来定义一个宏FOO(使用__VA_ARGS__或以其他方式),以获得分派的相同的效果FOO(x,y)来FOO2,并FOO(x,y,z)到FOO3?
183
c
macros
c-preprocessor