1. 参数为同一种类型的:initializer_list<type> lst
有几个方法可以调用:lst.size();lst.begin();lst.end()
2. 参数为不同类型的
用省略号指定参数列表:
void fun(...);
void fun(param_list, ...);
有几个相关的宏定义
typedef char* va_list;
void va_start(va_list ap, prev_param);
void va_arg(va_list ap, type);
void va_end(va_list ap);
上面的宏定义在函数里面都可以直接调用
调用va_start()函数,va_list指向当前参数的一个指针,pre_param指向变参表前面紧挨着的一个变量,即”...“之前的那个参数
调用va_arg(),返回这个指定类型的值,并让ap指向下一个变参
调用va_end(),在获取所有参数之后,关掉指针ap