c语言可变参数

来源:岁月联盟 编辑:猪蛋儿 时间:2011-11-06

 

在c和c++中有一类函数含所有不确定的参数列表,例如经典的printf(char *format,...)。本文讲讨论如何实现变长参数的函数。

在<stdarg.h>中包含了一组宏定义,他们对如何遍历参数表进行了定义。

主要有4个类型:

va_list:用于声明一个变量,该变量依次引用参数列表中的参数,例va_list ap;看起后缀list,应该就是一个链表

va_start:用于将ap声明的变量指向第一个无名参数。va_start(ap,最后一个有名参数)。可变长参数函数必须含有一个有名参数。

va_arg:返回ap当前指向的参数,并++ap。va_arg(ap,类型)

va_end:完成必要的清理工作。

 

摘自 袭人的专栏

图片内容