va_start,va_arg,va_end 可变参数的总结

可变参数的注释

// 内存对齐
#define  SIZEOF(n) (sizeof(n)+sizeof(n)-1)&(~((sizeof(n))-1))

#typedef char * va_list

// 让va_element指向fmt之后的一个元素。
#define va_start(va_element,fmt) 		( va_element=((va_list)&fmt)+SIZEOF(fmt) )

// 让va_element指向elementType元素之后的一个元素,并且返回此时的值。
#define va_arg(va_element,elementType) 	( *(elementType *)((va_element+=SIZEOF(elementType))-SIZEOF(elementType)) )

// 让va_element归零,防止后面的误操作。
#define va_end(va_element) (va_element=(va_list)0)
参考网站:http://blog.youkuaiyun.com/edonlii/article/details/8497704

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值