C++ 如何根据不同的参数定义相同的宏函数

C++ 如何根据不同的参数定义相同的宏函数,c++,macros,overloading,C++,Macros,Overloading,我有一个函数 void fun(int j, int i = 10); 我想通过一个宏函数来调用乐趣 #define fun1(x) fun(10) #define fun1(x, y) fun(x, y) 我怎样才能做到这一点 为什么要在此处使用宏?在C++中,使用内联函数将更容易和更习惯。 一般来说,如果您陈述您的问题,而不仅仅是想象中的解决方案,您可能会得到更好的帮助。为什么要在此处使用宏?在C++中,使用内联函数将更容易和更习惯。 一般来说,如果你陈述了你的问题,而不仅仅是想象中的

我有一个函数

void fun(int j, int i = 10);
我想通过一个宏函数来调用乐趣

#define fun1(x) fun(10)

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

我怎样才能做到这一点

为什么要在此处使用宏?在C++中,使用内联函数将更容易和更习惯。
一般来说,如果您陈述您的问题,而不仅仅是想象中的解决方案,您可能会得到更好的帮助。

为什么要在此处使用宏?在C++中,使用内联函数将更容易和更习惯。
一般来说,如果你陈述了你的问题,而不仅仅是想象中的解决方案,你可能会得到更好的帮助。

你不能像处理函数一样,根据参数的数量重载宏


最好只调用函数。

不能像调用函数一样,根据参数数量重载宏

#define fun1(x) fun(10)

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

最好只调用函数。

有些预处理器很有趣,请尝试:

#define fun1(x) fun(10)

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


有些预处理器很有趣,请尝试:

#define fun1 fun


您想通过宏定义调用fun,还是想绑定函数的一个参数以便可以使用一个参数调用它?为什么要在此处使用宏?在C++中,使用内联函数将更容易和更习惯。一般来说,如果你陈述你的问题,而不仅仅是想象中的解决方案,你可能会得到更好的帮助。是的,我需要。我没有描述整个场景。只是它的一小部分我被卡住了。你想通过宏定义调用乐趣,还是想绑定函数的一个参数,这样你就可以用一个参数调用它?为什么要在这里使用宏?在C++中,使用内联函数将更容易和更习惯。一般来说,如果你陈述你的问题,而不仅仅是想象中的解决方案,你可能会得到更好的帮助。是的,我需要。我没有描述整个场景。只是其中的一小部分,我没有描述整个场景。我需要这样的功能。@Pawan:那么,你不是问你的问题,而是问另一个问题,仍然希望得到正确的答案?对不起,我们不是读心术的人。#定义UPUT(设置)检查(点0(应用类型,标记))\if(NUMARGS(#(值)(参数))==0)\UPUT SET(检查)点X(0,应用类型,标记,UPUT P(无效)0,UPUT P(无效)0,UPUT P(无效)无效,0,文件,行)else\UPUT_SET_CHECK_POINTx(0,appType,tag,UPUT_P_INVALID,0,UPUT_P_INVALID,0,UPUT_P_INVALID,0,UPUT_P_INVALID,0,文件,行,NEXT_ARG(###u VA_ARGS_u))如果NEXT_ARG(####VA_uargs)为empty@PawanKumarSrivastava:噢,求你了。。。编辑您的问题并正确设置格式。注释不适合广泛的代码输入:xI并没有描述整个场景。我需要这样的功能。@Pawan:那么,你不是问你的问题,而是问另一个问题,仍然希望得到正确的答案?对不起,我们不是读心术的人。#定义UPUT(设置)检查(点0(应用类型,标记))\if(NUMARGS(#(值)(参数))==0)\UPUT SET(检查)点X(0,应用类型,标记,UPUT P(无效)0,UPUT P(无效)0,UPUT P(无效)无效,0,文件,行)else\UPUT_SET_CHECK_POINTx(0,appType,tag,UPUT_P_INVALID,0,UPUT_P_INVALID,0,UPUT_P_INVALID,0,UPUT_P_INVALID,0,文件,行,NEXT_ARG(###u VA_ARGS_u))如果NEXT_ARG(####VA_uargs)为empty@PawanKumarSrivastava:噢,求你了。。。编辑您的问题并正确设置格式。注释不适合广泛的代码输入:x