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

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

WBOY
リリース: 2023-08-30 08:21:11
転載
1716 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート