タグ

tryに関するTAKESAKOのブックマーク (1)

  • Super Technique 講座~longjmpと例外

    プログラムの流れを制御する手段として、いわゆる「構造化構文(for とか if とか)」、悪名高い「goto 文」などがあるのは周知のことだが、かなり特殊なものとして、「setjmp, longjmp」による「非ローカル分岐」と呼ばれるものがある。この「非ローカル分岐」は「非ローカル」と言うだけあって、ある関数の中から、別な関数に制御を移すことができたりする。まあ、そのために乱用すべきではなく、注意して使わなくてはならないライブラリ関数なのだが、実はこれは JavaC++ で言語の上で実装されている「例外」の基礎となるものである。だから、まずこの標準ライブラリ関数「setjmp, longjmp」について解説しよう。 → Java 講座の「例外」 setjmp, longjmp とは どうやって実現してるの? setjmp/longjmp の利用例~インタプリタ 補追1:setjmp

    TAKESAKO
    TAKESAKO 2009/10/15
    >対応するsetjmpマクロの呼出しを含む関数中の、volatile修飾型でない自動記憶域期間をもつオブジェクトの値が、setjmp呼出しとlongjmp呼出しの間に変更された場合に不定となることを除いて、すべてのアクセス可能なオブジェ
  • 1