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


C语言 va_start用法及代码示例


C语言stdarg头文件(stdarg.h)中va_start宏的用法及代码示例。

用法:

void va_start (va_list ap, paramN);
初始化变量参数列表
初始化ap在参数之后检索其他参数paramN

调用的函数va_start,还应调用va_end在它返回之前。

参数

ap
类型的未初始化对象va_list
调用之后,它将携带使用以下命令检索其他参数所需的信息:va_arg
如果ap已经作为第一个参数传递给上一个调用va_start或者va_copy,它应该传递给va_end在调用此函数之前。
paramN
函数定义中最后一个命名参数的名称。后续调用提取的参数va_arg是那些之后paramN

返回值



示例

/* va_start example */
#include <stdio.h>      /* printf */
#include <stdarg.h>     /* va_list, va_start, va_arg, va_end */

void PrintFloats (int n, ...)
{
  int i;
  double val;
  printf ("Printing floats:");
  va_list vl;
  va_start(vl,n);
  for (i=0;i<n;i++)
  {
    val=va_arg(vl,double);
    printf (" [%.2f]",val);
  }
  va_end(vl);
  printf ("\n");
}

int main ()
{
  PrintFloats (3,3.14159,2.71828,1.41421);
  return 0;
}


函数PrintFloats将其他参数的数量作为第一个参数(n),然后使用cstdarg宏并以特定格式打印出来。

输出:
Printing floats: [3.14] [2.72] [1.41]

相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C va_start function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。