Latest web development tutorials

Cライブラリのマクロ - のva_start()

C標準ライブラリ -  <STDARG.H> C標準ライブラリ- <STDARG.H>

説明

Cライブラリマクロボイドのva_start(va_listのapに、last_arg)AP初期化された変数、それはのva_argはva_endマクロ一緒に使用されています。関数に渡さlast_argは最後の既知の固定パラメータ、省略記号以前のパラメータです。

このマクロは、va_argのとはva_endを使用する前に呼び出されなければなりません

声明

ここでのva_start()マクロ文です。

void va_start(va_list ap, last_arg);

パラメータ

  • APは、 -それは、必要な情報を得るのva_argを介して追加のパラメータを格納するのに使用されるva_list型のオブジェクトです。
  • last_arg -渡された固定パラメータ知ら最後の関数。

戻り値

NA

次の例は、のva_start()マクロ使用方法を示します。

#include<stdarg.h>
#include<stdio.h>

int sum(int, ...);

int main(void)
{
   printf("10、20 和 30 的和 = %d\n",  sum(3, 10, 20, 30) );
   printf("4、20、25 和 30 的和 = %d\n",  sum(4, 4, 20, 25, 30) );

   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;
}

それでは、以下になります上記のプログラムを、コンパイルして実行してみましょう:

10、20 和 30 的和 = 60
4、20、25 和 30 的和 = 79

C標準ライブラリ -  <STDARG.H> C標準ライブラリ- <STDARG.H>