作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有没有办法直接将可变数量的参数从一个函数传递到另一个函数?
我想实现如下所示的最小解决方案:
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/
我是一名优秀的程序员,十分优秀!