一个变量args函数如何调用另一个?

前端之家收集整理的这篇文章主要介绍了一个变量args函数如何调用另一个?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Passing variable number of arguments around10个
假设你有2个功能
void func(int x,int y,...)
{
 //do stuff
}
void func2(int x,...)
{
 func(x,123,...);
}

你如何使这项工作,例如将arg-list传递给另一个函数

编辑:这是duplicate,有人合并他们或其他什么?

解决方法

您需要一个与显式参数列表一起使用的单独版本:
void vfunc(int x,va_list args)
{
  /* do stuff */
}

void func2(int x,...)
{
  va_list arg;

  va_start(arg,x);
  vfunc(x,arg);
  va_end(arg);
}

这就是vprintf()等标准功能的原因.

猜你在找的C&C++相关文章