Maison  >  Article  >  développement back-end  >  En langage C, les fonctions setjump() et longjump() sont traduites comme suit :

En langage C, les fonctions setjump() et longjump() sont traduites comme suit :

WBOY
WBOYavant
2023-08-30 08:21:111662parcourir

En langage C, les fonctions setjump() et longjump() sont traduites comme suit :

Dans cette partie, nous verrons ce que sont setjump et longjump en langage C. setjump() et longjump() se trouvent dans la bibliothèque setjmp.h. La syntaxe de ces deux fonctions est la suivante.

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.

Ceux-ci sont utilisés en C pour la gestion des exceptions. Le setjump() peut être utilisé comme bloc try, et longjump() peut être utilisé comme instruction throw Les transferts longjump() contrôlent la pointe pointée par setjump().

Ici, nous verrons comment imprimer un nombre 100 fois sans utiliser de récursion, de boucle ou d'expansion de macro. Ici, nous utiliserons les fonctions setjump() et longjump() pour ce faire.

Exemple

#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
}

output

5555555555555555555555555555555555555555555555555555555555555555555555555555
555555555555555555555555
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer