私の理解が正しければ、va_end
クリーンアップが呼び出され、同じコンテキストで、のマニュアルページにva_end
は次のように書かれています
va_end()
va_start() の各呼び出しは、同じ関数内の対応する va_end() の呼び出しと一致する必要があります。va_end(ap) の呼び出し後、変数 ap は未定義です。va_start() と va_end() で囲まれたリストの複数のトラバーサルが可能です。va_end() は、マクロまたは関数の場合があります。
したがってva_end
、 が呼び出された場合に呼び出す必要があることは明らかva_start
ですが、逆の関係が成り立つのva_end
でしょva_start
うか。