如何根据不同的参数定义相同的宏功能

时间:2012-05-07 08:20:22

标签: c++ macros overloading

我有一个功能

void fun(int j, int i = 10);

我想通过宏功能调用这个乐趣。

#define fun1(x) fun(10)

#define fun1(x, y) fun(x, y)

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:3)

为什么要在这里使用宏?在C ++中,使用内联函数会更容易,更惯用。

一般来说,如果你陈述问题,而不仅仅是想象中的解决方案,你可能会得到更好的帮助。

答案 1 :(得分:2)

您不能像执行功能那样根据参数数量重载宏。

你最好只是调用这个函数。

答案 2 :(得分:0)

有些预处理器很有趣:

#define fun1 fun

或者

#define fun1(...) fun( __VA_ARGS__)

或者

#define fun1(x...) fun(x)
相关问题