gcc:转发可变函数调用

gcc:转发可变函数调用,c,gcc,variadic-functions,C,Gcc,Variadic Functions,有没有办法从另一个变量函数调用一个变量函数 我知道如果我想转发一个变量调用,我可以使用一个接受va_list参数的函数 例如,如果我声明my_printf我可以在内部调用vfpprintf 另一种方法是使用宏: #定义my_printf(a,…)fprinf(a,uu VA_ARGS_uu) 但是,有没有一种方法可以“创建”变量调用而不必强制使用va_list参数 换句话说:my_printf可以直接调用fprintf,而不是vfprintf,是否有任何方法(标准或非标准,使用gcc扩展等)

有没有办法从另一个变量函数调用一个变量函数

我知道如果我想转发一个变量调用,我可以使用一个接受
va_list
参数的函数

例如,如果我声明
my_printf
我可以在内部调用
vfpprintf

另一种方法是使用宏:

#定义my_printf(a,…)fprinf(a,uu VA_ARGS_uu)
但是,有没有一种方法可以“创建”变量调用而不必强制使用
va_list
参数

换句话说:
my_printf
可以直接调用
fprintf
,而不是
vfprintf
,是否有任何方法(标准或非标准,使用gcc扩展等)

有没有办法从另一个变量函数调用一个变量函数

是,使用
va_列表
。这是调用另一个变量函数的方法,它在任何地方都得到了标准化和支持。从库中提供变量函数时,请确保同时提供
va_列表
version。不要使用其他选项,除非你必须这样做

有什么办法(标准的)吗

没有

嗯,有一个超老的

使用gcc扩展

有一些内置函数:和
\u内置应用()
东西

)

编写一些程序集来转发参数


有可用的。

C标准没有为此提供任何便利。最好的解决方案是首先避免任何可变因素。这是一个可怕而危险的API。你能描述一下你用这种方法试图解决的现实世界中的问题吗?还有,你看到[这个问题/许多答案]了吗?我将投票结束这个问题,不是因为它不是一个好问题,而是因为它已经被提出和回答了。如果你能解释你的请求与链接帖子的区别,请解释。如果你确实能解释,我将取消投票。