可变参数列表
1. stdarg
宏 (C语言)
这些宏定义于stdarg.h
文件, 是标准库的一部分. 这个头文件声明了一个类型 va_list
和三个宏 va_start
, va_arg
和 va_end
.
#include <stdarg.h>
void func(const char *fmt, ...) {
va_list ap; //声明参数列表
//初始化参数列表, 包含两个参数
//ap - 之前声明的参数列表
//fmt - 函数声明时省略号前的最后一个变量名
va_start(ap, fmt);
//访问参数列表 va_arg(参数列表, 当前访问的参数的数据类型)
//参数类型可能需要已经获得的信息来判断
//参数列表只能从前往后按顺序逐个访问
auto a = va_arg(ap, int)