当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 宏 va_arg()用法及代码示例



描述

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

声明

以下是 va_arg() 宏的声明。

type va_arg(va_list ap, type)

参数

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

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

返回值

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

示例

下面的例子展示了 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

相关用法


注:本文由纯净天空筛选整理自 C library macro - va_arg()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。