最近的一个项目中需要嵌套处理可变参数列表,故而使用了VA系列函数,对外接口定义如下:
int func(int cmd, char *str, ...);
在接口内部定义变量 :va_list ap; 使用va_start(ap, str);指向参数列表中第一个可变参数,在子函数中将*ap作为参数传递,即可在子函数中访问可变参数,即访问ap指向的可变的参数列表(对指针指向地址的访问)。模型如下:
int child_func(va_list *_pap)
{
}
int func(int cmd, char *str, ...)
{
va_list ap;
va_start(ap, str);//指向第一个可变参数
child_func(&ap);
va_end(ap);
return 0;
}