更新时间:2024-05-21 11:07
宏定义:type va_arg (va_list ap, type)
#include
type va_arg(va_list ap, type);
参数ap应该首先被宏va_start 或 va_copy初始化,但又必须在被宏va_end调用之前使用。每次调用va_arg都会改变ap值使得后续的参数值能被依次添加。参数type应该是一个类型名,并且用type*能够得到该类型的指针类型。如果type为空,或者type和实际参数不匹配, 那么除了以下两种情况,这个宏的行为是未定义的。
1. 一个是带符号整型,另一个是与之对应的无符号整型,并且值可以被表达成这两种类型的任何一种;
2. 一个是空类型指针,另一个是字符类型指针。
第一次调用va_arg返回parmN之后的参数值,后续的调用依次返回剩下的参数值。parmN应为函数中“...”前最后一个参数值。
实现: