C语言参数数量可变函数如何编写?

qjydali 2003-09-14 11:34:15
请教高手:在C语言中,参数数量可变函数如何编写?
  比如,最典型的就是广为人用的printf(const char *, ...)了。
  1. 我连参数的数量都不知道,如何引用它呢?
  2. 参数的类型不同,则存贮空间也大多不同,如何控制?
  我见过有些与此相关的代码,可惜是函数里面加函数,加了好几层,早就看晕了。期待高手一针见血式的讲出其本质。
...全文
119 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qjydali 2003-09-16
  • 打赏
  • 举报
回复
关于对emmyjeff的回答:
  1. %d%d%f%s只能说明有四个参数,但不能说明%d对应的就是一个整数
(16位或32位),因为它也可以对应一个字符(8位,字符也可以用来打印)。
  2. 里面又有了一些我所不懂的函数,而且您的回答也不是特别的透彻。
emmyjeff 2003-09-14
  • 打赏
  • 举报
回复
在函数的第一个参数指出参数的类型如:"参数有:%d%d%f%s"表示可变参数有四个参数,类型依次为整数、整数、浮点数、字符串,你可以如下取得参数
va_list arg_list;
va_start(arg_list, format);

////用你从第一个参数中解析出来的参数类型分别用下面的这个函数取得变参
type va_arg( va_list arg_ptr, type );
va_end(arg_list);

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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