目录

type va_arg(va_list ap, type)

描述 (Description)

C库宏type va_arg(va_list ap, type)检索具有type的函数的参数列表中的下一个参数。 这不确定检索的参数是否是传递给函数的最后一个参数。

声明 (Declaration)

以下是va_arg()宏的声明。

type va_arg(va_list ap, type)

参数 (Parameters)

  • ap - 这是类型为va_list的对象,其中包含有关其他参数及其检索状态的信息。 在第一次调用va_arg之前,应该通过初始调用va_start来初始化此对象。

  • type - 这是类型名称。 此类型名称用作表达式的类型,此宏扩展为。

返回值 (Return Value)

此宏将下一个附加参数作为类型type的表达式返回。

例子 (Example)

以下示例显示了va_arg()宏的用法。

#include <stdarg.h>
#include <stdio.h>
int sum(int, ...);
int main () {
   printf("Sum of 15 and 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;
}

让我们编译并运行上述程序以产生以下结果 -

Sum of 15 and 56 = 71
↑回到顶部↑
WIKI教程 @2018