このマクロの目的
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); }