va_start宏
概要:
#include <stdarg.h> void va_start(va_list ap, parmN);
描述:
va_start应作为宏而不是函数来实现;宏va_start是函数式宏,可用于初始化可变参数列表。
访问未命名参数前,应调用宏va_start。宏va_start初始化ap以供后续宏va_arg和va_end使用。对于同一ap,如果没有调用宏va_end结束其使用,则不应该调用宏va_start或者va_copy重新初始化ap。同一函数中宏va_start和宏va_copy的每次调用都应与对应的va_end宏调用相匹配。
参数parmN是函数定义可变参数列表中最右边参数的标识符,即, ...之前的参数的标识符。如果参数parmN声明时使用了register存储类说明符、类型为函数类型或者数组类型、或者类型为与默认参数提升(default argument promotions)后的结果类型不兼容的类型,其行为是未定义的。
参数:
va_list ap
未初始化的va_list类型对象。
parmN
函数定义可变参数列表中最右边参数的标识符,即, ...之前的参数的标识符。
返回值:
该宏无返回值。
范例:
|
|
输出:
sum = 194
相关内容:
va_list | 保存可变参数信息的类型。 |
va_arg | 获取下一个参数的宏。 |
va_copy | 复制可变参数列表的宏。 |
va_end | 结束使用可变参数列表的宏。 |