2013年5月9日 星期四

(C++) 使用不定長度引數之函式

不定個數引數之函式,顧名思義,就是一個可以餵不定個數引數的函式,引數可以3個、6個、9個等等,要使用不定個數引數,必須加入標頭檔 :   #include

提供了幾個可使用的巨集,用以實現不定個數引數

va_list : 在va_start、 va_arg與va_end三個巨集使用時當作參數使用。
va_start : 開始不定長度引數的巨集。
va_arg : 讀取不定長度引數的巨集。
va_end : 結束不定長度引數的巨集。

範例如下:


#include
#include

void test(int argNum, ...)
{
   va_list argList;
   va_start(argList, argNum);
   for(int i = 0; i < argNum; ++i)
      std::cout << va_arg(argList, double) << std::endl;
   va_end(argList);
}


void main( )
{
   double a = 1.02, b = 3.22, c = 5.22;
   double d = 2.22, e = 8.98, f = 0.99;

   test(3, a, b, c);
   test(6, a, b, c, d, e, f);
}

沒有留言:

張貼留言