gpt4 book ai didi

c++ - 如何将可变数量的参数从一个函数传递到另一个函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:31 27 4
gpt4 key购买 nike

有没有办法直接将可变数量的参数从一个函数传递到另一个函数?

我想实现如下所示的最小解决方案:

int func1(string param1, ...){
int status = STATUS_1;
func2(status, param1, ...);
}

我知道我可以使用类似下面的方法来做到这一点,但是这段代码将被复制多次,所以我想尽可能地保持它的简约,同时保持函数调用非常短

int func1(string param1, ...){
int status = STATUS_1;
va_list args;
va_start(args, param1);
func2(status, param1, args);
va_end(args);
}

谢谢!

最佳答案

不,您必须按照第二个示例使用 va_list 传递可变参数。

这只是 3 行额外的代码,如果您想避免重复这些行,并且 func2 始终相同,或者至少采用相同的参数,请从中创建一个宏。

#define CALL_MY_VA_FUNC(func,param) do {\
va_list args; \
va_start(args,param);\
func(param,param,args);\
va_end(args); } while(0)

关于c++ - 如何将可变数量的参数从一个函数传递到另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672753/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com