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.
#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
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!