va_start
来自 cppreference.cn
定义于头文件 <cstdarg> |
||
void va_start( std::va_list ap, parm_n ); |
||
va_start
宏启用对命名参数 parm_n 之后的变量参数的访问。
在任何调用 va_arg 之前,应使用有效的 va_list 对象 ap 调用 va_start
。
(自 C++11 起) |
如果 parm_n 是引用类型,或与从默认实参提升产生的类型不兼容的类型,则行为未定义。
目录 |
[编辑] 参数
ap | - | va_list 类型的对象 |
parm_n | - | 在第一个可变参数之前的命名参数 |
[编辑] 展开值
(无)
[编辑] 注意
va_start
需要支持具有重载 operator&
的 parm_n。
[编辑] 示例
运行此代码
输出
150
[编辑] 缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
DR | 应用于 | 已发布行为 | 正确行为 |
---|---|---|---|
CWG 273 | C++98 | 不清楚是否需要 va_start 来支持具有重载 operator& 的 parm_n |
需要 |
LWG 2099 | C++98 | 如果 parm_n 是 用函数、数组或引用类型声明,则行为未定义 |
如果行为未定义 parm_n 是引用类型 |
[编辑] 参见
访问下一个可变参数函数参数 (函数宏) | |
结束可变参数函数参数的遍历 (函数宏) | |
C 文档 关于 va_start
|