LRESULTsetjmp.hには、ジャンプ処理用のマクロが定義されています。ジャンプ処理とは、その名の通りコード内を飛び回れます。異なる関数間でも、goto文のように指定した位置へ移動します。エラー処理に有効ですが、使いすぎると大変な事になりそうです。最初に設定する際は、0を返し、longjmp()から呼ばれた場合は、0以外のlongjump()で指定された引数を返します。戻り値なしサンプルコードsetjmp()とlongjmp()を使用したジャンプ処理でループさせてみます。);}結果1回目は素通りlongjmp()からジャンプして来た[2回目]longjmp()からジャンプして来た[3回目]longjmp()からジャンプして来た[4回目]longjmp()からジャンプして来た[5回目]longjmp()からジャンプして来た[6回目]longjmp()からジャンプして来た[7回目]longjmp()からジャンプして来た[8回目]longjmp()からジャンプして来た[9回目]10回目で終わりと、いうわけで、longjmp()で指定した戻り値を使ってループ処理を行いました。最後のreturnを忘れると無限ループになるのでお気をつけて。通常は、goto文のように例外処理として使うかと思います。-コメントするname:email:url:comments:Cookieに登録この記事のトラックバックURLトラックバック機能は終了しました。2.0▲このページの先頭へ。