va_start
来自 zh.cppreference.net
| 定义于头文件 <cstdarg>
|
||
void va_start( std::va_list ap, parmN );
|
(C++26 前) | |
void va_start( std::va_list ap, ... );
|
(C++26 起) | |
va_start 宏允许访问命名实参 (C++26 前)parmN之后的变参。
va_start 必须用有效的 std::va_list 对象实例调用 ap,且在调用 va_arg 之前进行。
如果 |
(C++26 前) | ||
|
如果 |
(C++26 起) |
参数
| 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
|
|