このセクションでは、C 言語における setjump と longjump が何であるかを見ていきます。 setjump() と longjump() は setjmp.h ライブラリにあります。これら 2 つの関数の構文は次のとおりです。
setjump(jmp_buf buf) : uses buf to store current position and returns 0. longjump(jmp_buf buf, i) : Go back to place pointed by buf and return i.
これらは C で例外処理に使用されます。setjump() は try ブロックとして使用でき、longjump() は throw ステートメントとして使用できます。longjump() 転送は、によってポイントされるポイントを制御します。 setjump().
ここでは、再帰、ループ、マクロ展開を使用せずに数値を 100 回出力する方法を見ていきます。ここでは、setjump() 関数と longjump() 関数を使用してそれを行います。
#include <stdio.h> #include <setjmp.h> jmp_buf buf; main() { int x = 1; setjmp(buf); //set the jump position using buf printf("5"); // Prints a number x++; if (x <= 100) longjmp(buf, 1); // Jump to the point located by setjmp }
5555555555555555555555555555555555555555555555555555555555555555555555555555 555555555555555555555555
以上がC 言語では、setjump() 関数と longjump() 関数は次のように変換されます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。