va_start
From cppreference.net
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<cstdarg>
|
||
|
void
va_start
(
std
::
va_list
ap, parm_n
)
;
|
||
va_start
宏用于访问位于命名参数
parm_n
之后的可变参数。
va_start
应在调用
va_arg
之前,通过一个有效的
va_list
对象实例
ap
来调用。
| (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
|
|