va_start
来自 cppreference.com
定义在头文件 <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 文档 for va_start
|