English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Bibliothèque standard en C - <setjmp.h>
Fonction de bibliothèque C void longjmp(jmp_buf environment, int value) Restaurer le dernier appel setjmp() L'environnement sauvegardé par la macrojmp_buf La configuration des paramètres est déterminée par l'appel setjmp() précédent.
Voici la déclaration de la fonction longjmp().
void longjmp(jmp_buf environment, int value)
environment -- C'est un type jmp_buf de l'objet, qui contient des informations sur l'environnement stocké lors de l'appel setjmp.
value -- C'est setjmp Valeur de l'expression à juger.
Cette fonction ne renvoie aucune valeur.
Le exemple suivant montre l'utilisation de la fonction longjmp().
#include <stdio.h> #include <setjmp.h> static jmp_buf buf; void second(void) { printf("second\n"); // Imprimer longjmp(buf,1); // retourner à l'endroit de l'appel setjmp - qui rend le retour de setjmp égale à1 } void first(void) { second(); printf("first\n"); // Il est impossible d'exécuter cette ligne } int main() { if (! setjmp(buf)) { first(); // Avant d'entrer dans cette ligne, setjmp renvoie 0 } else { // Lorsque longjmp revient, setjmp renvoie1Par conséquent, nous entrons dans cette ligne printf("main\n"); // Imprimer } return 0; }
Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant :
second main