La funzione longjmp () in C ++ ripristina l'ambiente precedentemente salvato chiamando setjmp ().
La funzione longjmp () è definita nel file di intestazione.
prototipo longjmp ()
void longjmp (jmp_buf env, int status);
L'ambiente da caricare è memorizzato nell'argomento env che viene salvato chiamando la funzione setjmp ().
Parametri longjmp ()
- env: un oggetto di tipo jmp_buf che memorizza l'ambiente da caricare.
- status: la variabile da restituire da setjmp. Se è uguale a 0, viene utilizzato 1.
longjmp () Restituisce il valore
- Nessuna
Esempio: come funziona la funzione longjmp ()?
#include #include using namespace std; int main() ( jmp_buf env; int val; val = setjmp(env); if (val==0) ( cout << "setjmp returned " << val << endl; longjmp(env,val); ) else ( cout << "setjmp returned " << val << endl; cout << "Program terminating" << endl; ) return 0; )
Quando esegui il programma, l'output sarà:
setjmp ha restituito 0 setjmp ha restituito 1 Programma terminato