C-standard-library-c-macro-va-end

提供:Dev Guides
移動先:案内検索

Cライブラリマクロ-va_end()

説明

Cライブラリマクロ* void va_end(va_list ap)を使用すると、 *va_start マクロを使用した可変引数を持つ関数が返されます。 関数から戻る前に va_end が呼び出されない場合、結果は未定義です。

宣言

以下は、va_end()マクロの宣言です。

void va_end(va_list ap)

パラメーター

  • ap -これは、以前に同じ関数でva_startによって初期化されたva_listオブジェクトです。

戻り値

このマクロは値を返しません。

次の例は、va_end()マクロの使用法を示しています。

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

int mul(int, ...);

int main () {
   printf("15 *12 = %d\n",  mul(2, 15, 12) );

   return 0;
}

int mul(int num_args, ...) {
   int val = 1;
   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;
}

上記のプログラムをコンパイルして実行し、次の結果を生成しましょう-

15 * 12 =  180