English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Biblioteca padrão do C - <setjmp.h>
Função da biblioteca C void longjmp(jmp_buf environment, int value) restaura a última chamada setjmp() macro que salva o ambiente,jmp_buf A configuração dos parâmetros é determinada pelo chamada anterior setjmp().
A seguir está a declaração da função longjmp().
void longjmp(jmp_buf environment, int value)
environment -- Este é um tipo jmp_buf do objeto, que contém informações do ambiente armazenado ao chamar setjmp.
value -- Este é setjmp Expressão a ser avaliada.
Esta função não retorna nenhum valor.
O exemplo a seguir demonstra o uso da função longjmp().
#include <stdio.h> #include <setjmp.h> static jmp_buf buf; void second(void) { printf("second\n"); // Imprimir longjmp(buf,1); // retorna para o local de chamada do setjmp - faz com que setjmp retorne o valor1 } void first(void) { second(); printf("first\n"); // Impossível executar até esta linha } int main() { if (! setjmp(buf)) { first(); // Antes de entrar nesta linha, setjmp retorna 0 } // Quando longjmp saltar de volta, setjmp retorna1Portanto, entra na linha printf("main\n"); // Imprimir } return 0; }
Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado:
second main