Descrição:

No cabeçalho <setjmp.h> estão presentes funções e tipos que são capazes de manipular o fluxo de execução de um programa. Portanto, trata-se de um cabeçalho do qual seus recursos devem ser utilizados apenas em situações nas quais estes são a única opção, caso o código escrito esteja seguindo o paradigma de programação estruturada, uma vez que os efeitos das funções presentes neste cabeçalho assemelham-se ao uso de goto's no código.

Tipos:

jmp_buf: armazena dados referentes sobre o ponto para o qual a função longjmp deve saltar quando for chamada, por meio do uso da função setjmp, que memoriza esse ponto do salto por meio da variável declarada com este tipo.

Funções:

int setjmp(jmp_buf ponto)

RETORNA: 0 a primeira vez em que é chamada, e um valor diferente de zero após o primeiro salto que faz uso da variável passada como parâmetro no chamado de setjmp().
RECEBE: uma variável que irá indicar o ponto a partir do qual o código é executado quando a função longjmp().

void longjmp(jmp_buf ponto, int valor)

RETORNA: void, função sem retorno.
RECEBE: uma variável do tipo jmp_buf, que indica para onde a função deverá saltar, e um valor numérico diferente de zero, o qual será utilizado pela função setjmp() para retornar o valor inteiro não igual a zero após a execução do primeiro salto.