當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。