找回密码
 注册
关于网站域名变更的通知
查看: 360|回复: 1
打印 上一主题 下一主题

stdarg的用法(可变参数的用法)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-22 09:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
stdarg的用法(可变参数的用法)
' ?! M, z5 L1 k5 |1 k: S/ M- u; N
0 Y% v9 ^2 d/ _5 M

# [+ S& J: n+ B7 ^) a
stdarg宏:
可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件,它是标准库的一部分。
这个头文件声明的一个va_list的类型,和三个宏va_start,va_arg,va_end。我们可以生明一个va_list类型的变量,配合三个宏使用。
va_start(arg, last have name arg);
初始化之后,arg将指向第一个无名参数。
va_arg(arg, next arg type);
va_arg将会返回当前的arg的va_list变量所指向的无名变量。并使它指向下一个无名变量。
注意,当访问所有变量之后记得调用va_end(arg);
来释放这个va_list类型的变量。
#include
int nsum(int n,...)
{
va_list num; // va_list 是一个宏定义类型
int sum=0;
va_start(num,n); //开始取参,是num指向第一个参数
for(;n>1;n--)
{
sum += va_arg(num,int); // 这个函数返回当前指向的参数,并指向下一个参数
}
va_end(num); //用完释放
return sum;
}
5 ]. {4 M. m" R8 ?7 O5 B9 x$ ~

该用户从未签到

2#
发表于 2019-2-22 18:12 | 只看该作者
这个不错,谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-4 19:21 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表