跳转到内容

从参数列表中提取值

#include <stdarg.h>
type va_arg(va_list ap, type);
```### 描述
va_arg 返回可变参数列表 ap 中的下一个未处理值(您必须事先使用 va_start 创建该列表)。将该值的类型指定为该宏的第二个参数 type。
您可以将 va_list 对象 ap 传递给子函数,并从该子函数中使用 va_arg,而不是从头部实际使用省略号声明的函数中使用;但是,在这种情况下,您只能从该子函数中使用 va_arg。ANSI C 不允许从调用栈的不同层级从单个可变参数列表中提取连续的值。
没有机制可用于测试是否确实存在下一个可用参数;相反,您可以将参数计数(或暗示参数计数的其他某些数据)作为函数调用中的固定参数之一进行传递。### 返回值
va_arg 返回下一个参数,即 type 类型的对象。
---
**权威来源**: BUSMASTER DITA help source `va_arg.dita`, compiled into `BUSMASTER.CHM` with the application.