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