小白教程
所有教程
关于
Search
172.71.254.45
172.71.254.45
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“C macro va arg”的源代码
本页内容
上一节:
C_macro_va_start
下一节:
C_macro_va_end
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:type va_arg(va_list ap, type)}}[[Category:c standard library stdarg h|2]] = C 库宏 - va_arg() = [[c standard library stdarg h|C 标准库 - <stdarg.h>]] == 描述 == C 库宏 '''type va_arg(va_list ap, type)''' 检索函数参数列表中类型为 '''type''' 的下一个参数。它无法判断检索到的参数是否是传给函数的最后一个参数。 == 声明 == 下面是 va_arg() 宏的声明。 <pre> type va_arg(va_list ap, type) </pre> == 参数 == * '''ap''' -- 这是一个 '''va_list''' 类型的对象,存储了有关额外参数和检索状态的信息。该对象应在第一次调用 va_arg 之前通过调用 va_start 进行初始化。 * '''type''' -- 这是一个类型名称。该类型名称是作为扩展自该宏的表达式的类型来使用的。 == 返回值 == 该宏返回下一个额外的参数,是一个类型为 type 的表达式。 下面的实例演示了 va_arg() 宏的用法。 <sample title="" desc="" lang="c" hererun="1"> #include <stdarg.h> #include <stdio.h> int sum(int, ...); int main() { printf("15 和 56 的和 = %d\n", sum(2, 15, 56) ); return 0; } int sum(int num_args, ...) { int val = 0; va_list ap; int i; va_start(ap, num_args); for(i = 0; i < num_args; i++) { val += va_arg(ap, int); } va_end(ap); return val; } </sample> 让我们编译并运行上面的程序,这将产生以下结果: <pre> 15 和 56 的和 = 71 </pre> [[c standard library stdarg h|C 标准库 - <stdarg.h>]]
返回至“
C macro va arg
”。
上一节:
C_macro_va_start
下一节:
C_macro_va_end