可变参数
我们知道在C++中可以通过函数重载的方式为函数提供接受可变个参数的功能,而在C语言中并没有重载的机制,不过C语言仍然提供了在头文件< stdarg.h >中提供了类似的功能。
在头文件中提供了va_list类型来存放可变参数列表(这个类型应该是一个指针),以及三个宏来实现相关的操作,三个宏的原型如下:
void va_start(va_list ap, last_arg)
//这个宏初始化 ap 变量,它与 va_arg 和 va_end 宏是一起使用的。
//last_arg 是最后一个传递给函数的已知的固定参数,即省略号之前的参数。
type va_arg(va_list ap, type)
//这个宏检索函数参数列表中类型为 type 的下一个参数,并返回。
void va_end(va_list ap)
//这个宏用于进行清理工作,例如释放动态分配的用于存放参数的内存。
//如果在从函数返回