3

私の理解が正しければ、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うか。

4

2 に答える 2

2

いいえ、他の選択肢はva_copy()です。どちらも とペアにする必要がありましたva_end()

それ以外の場合は、そうしても意味がありません。

于 2013-06-28T07:02:26.930 に答える