编辑:恐怕我还不清楚。
我想要的是将可变参数列表的(部分或全部)传递给子函数,而不必传递所有可变参数。
我做了一些研究(试错)并找到了解决方案,我将其作为答案发布。
我已经删除了原来的问题,因为它不清楚。感谢您的评论,帮助我找到了自己想法中的错误。
最佳答案
下面是一个主要的测试函数。它调用一个可以接受可变数量参数的函数。该函数依次调用子函数来完成工作。它通过参数列表传递,但不是通过传递参数而是通过传递可变参数列表的地址。然后它处理这个列表:
void va_test1(int n,...);
void va_test2(int n, va_list argptr);
int va_main(void)
{
va_test1(5, 1,2,3,4,5);
return(1);
}
void va_test1(int n,...)
{
va_list argptr;
va_start (argptr, n);
va_test2 (n, argptr);
va_end (argptr);
}
void va_test2(int n, va_list argptr)
{
int i;
for (i=0;i<n;i++)
printf("%d\n", va_arg( argptr, int ));
}
关于c - 将可变参数列表传递给子函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33468879/