<分区>
有没有办法实现这个?
void func2(...) {
/*
* Handle „...” parameters
*/
}
void func1(int n, ...) {
func2(...);
}
标签 c parameters arguments
<分区>
有没有办法实现这个?
void func2(...) {
/*
* Handle „...” parameters
*/
}
void func1(int n, ...) {
func2(...);
}
最佳答案
不,你不能。不能转发可变参数。您的选择是:
让你的“内部”函数接受一个(n 已初始化)va_list
参数而不是 ...
并从调用者传递该列表;
如果参数是相同的(或可转换的)类型,您可以让它接受一个数组,然后自己解析可变参数并将数组及其长度传递给被调用的函数。
关于c - 将“...”参数传输到其他函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20292324/