我有两个宏,FOO2
并且FOO3
:
#define FOO2(x,y) ...
#define FOO3(x,y,z) ...
Run Code Online (Sandbox Code Playgroud)
我想定义一个新的宏FOO
如下:
#define FOO(x,y) FOO2(x,y)
#define FOO(x,y,z) FOO3(x,y,z)
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为宏不会在参数数量上超载.
无需修改FOO2
和FOO3
,是有一些方法来定义一个宏FOO
(使用__VA_ARGS__
或以其他方式),以获得分派的相同的效果FOO(x,y)
来FOO2
,并FOO(x,y,z)
到FOO3
?