C/C++如何在不定参数函数中调用另外一个不定参数函数

xupeng1644 2019-04-16 05:58:23
void fun1(int a, ...);
void fun2(int b, ...);

fun1中如何调用func2?

原来的想法天真了
void fun1(int a, ...)
{
fun2(a, ...);
}

求支招!!!
...全文
1008 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1
void fun1(int a, ...) { va_list args; va_start(args,a); //拿到fun1 的不定参数列表 fun2(a, args); // 将fun1 的不定参数列表 作为参数 传给 fun2。 } void fun2(int a,...){ va_list fun2_args; va_start(a, fun2_args); //拿到fun2 的不定参数列表 va_list fun1_args; fun1_args = va_arg(fun2_args,va_list); // 通过fun2的不定参列表 拿到 fun1 的不定参列表 int a = va_arg(fun1_args, int); // 解析 fun1 的不定参数 printf("a: %d",a); //打印参数 } fun1(1,10); //输出 是 10; //这样是可行的,我测试过,但是这样做合不合理吗,我不确定。如果看不明白的话再说吧。
赵4老师 2021-02-23
  • 打赏
  • 举报
回复
指向不定参数函数的指针难道不能作为函数参数吗?
zarelaky 2019-04-23
  • 打赏
  • 举报
回复
va_list
taodm 2019-04-17
  • 打赏
  • 举报
回复
C++呀,不定参数模板可以搞定。
636f6c696e 2019-04-17
  • 打赏
  • 举报
回复
只能用宏,函数之间无法直接调用
lin5161678 2019-04-17
  • 打赏
  • 举报
回复
stdarg.h 查一查就知道了
stherix 2019-04-17
  • 打赏
  • 举报
回复
引用 2 楼 还没想好XP 的回复:
@stherix 我说的函数 不是定义宏 我原本的意思就是: #define FUNC(A, ...) func1(A, ##__VA_ARGS__) func1需要将不定参数传递给func2 宏定义写成 #define FUNC(A, ...) func2(A, ##__VA_ARGS__) 不太方便 所以想要一次转调
如果你要转调的函数也是( ...)这种参数的话 应该是没法做到的
xupeng1644 2019-04-17
  • 打赏
  • 举报
回复
@stherix
我说的函数 不是定义宏
我原本的意思就是:
#define FUNC(A, ...) func1(A, ##__VA_ARGS__)
func1需要将不定参数传递给func2
宏定义写成
#define FUNC(A, ...) func2(A, ##__VA_ARGS__) 不太方便
所以想要一次转调
stherix 2019-04-16
  • 打赏
  • 举报
回复
#define debug_printf(fmt, ...) printf( fmt, ##__VA_ARGS__)

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧