
このマクロの目的
va_endマクロは、可変長引数の取得を終了する。
定義
#include <stdarg.h> void va_end(va_list ap);
働き
このマクロは、展開された va_start が初期化した va_list ap によって可変長引数が使われた関数が通常に返るのを助ける。
このマクロは ap が使えないようにいじくるかもしれない。
対応する va_start() がないか、 return の前に va_end() が実行されなかった場合の動作は未定義である。
解説
可変長引数関数の全体の流れは、次のようになる。
type0 function(type1 arg1, type2 arg2, ...)
{
va_list va;
va_start(va, arg2);
/* ... */
va_end(va);
}