我有一个功能
void fun(int j, int i = 10);
我想通过宏功能调用这个乐趣。
#define fun1(x) fun(10)
#define fun1(x, y) fun(x, y)
我怎样才能做到这一点?
答案 0 :(得分:3)
为什么要在这里使用宏?在C ++中,使用内联函数会更容易,更惯用。
一般来说,如果你陈述问题,而不仅仅是想象中的解决方案,你可能会得到更好的帮助。
答案 1 :(得分:2)
您不能像执行功能那样根据参数数量重载宏。
你最好只是调用这个函数。
答案 2 :(得分:0)
有些预处理器很有趣:
#define fun1 fun
或者
#define fun1(...) fun( __VA_ARGS__)
或者
#define fun1(x...) fun(x)