English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de linguagem C

Controle de fluxo de linguagem C

Função do C

Array do C

Ponteiro do C

String do C

Estrutura de linguagem C

Arquivo de linguagem C

Outro C

Manual de referência do C

Uso e exemplo da função longjmp() da biblioteca C

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().

Declaração

A seguir está a declaração da função longjmp().

void longjmp(jmp_buf environment, int value)

parâmetro

  • 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.

Valor de retorno

Esta função não retorna nenhum valor.

Exemplo online

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

Biblioteca padrão do C - <setjmp.h>