c语言可变参数

2014-11-23 23:40:02 · 作者: · 浏览: 10

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

中包含了一组宏定义,他们对如何遍历参数表进行了定义。

主要有4个类型:

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

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

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

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

摘自 袭人的专栏