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++ 标准。
| 缺陷报告 | 应用于 | 发布时的行为 | 正确的行为 |
|---|---|---|---|
| CWG 273 | C++98 | 不清楚 va_start 是否需要支持带有重载 operator& 的 parm_n |
需要 |
| LWG 2099 | C++98 | 如果 parm_n 被声明为 函数、数组或引用类型,则行为未定义 |
如果 parm_n 是引用类型 则行为未定义 |
[编辑] 参阅
| 访问下一个变长函数参数 (函数宏) | |
| 结束变长函数参数的遍历 (函数宏) | |
| C 文档 关于 va_start
| |