加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:45:05 所属栏目:百科 来源:网络整理
导读:参见英文答案 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,有人合并他
参见英文答案 > 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()等标准功能的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读