ホームページ  >  記事  >  バックエンド開発  >  C 言語では、setjump() 関数と longjump() 関数は次のように変換されます。

C 言語では、setjump() 関数と longjump() 関数は次のように変換されます。

WBOY
WBOY転載
2023-08-30 08:21:111660ブラウズ

C 言語では、setjump() 関数と longjump() 関数は次のように変換されます。

このセクションでは、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 サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。