setjmp.h

Un uso menos común de setjmp es crear una sintaxis similar a corrutinas.

Este proceso puede representarse como un "salto" atrás hacia el punto de la ejecución del programa donde setjmp guardo el contexto.

Si la función en la que fue llamada setjmp retorna, ya no es posible utilizar de forma segura longjmp con el objeto jmp_buf correspondiente.

Llamar a longjmp restablece el puntero de pila, que -ya que la función retorna- apuntaría a un marco de pila inexistente y posiblemente sobrescrito o dañado.

[3]​[4]​ Del mismo modo, C99 no requiere que longjmp preserve el marco de pila actual.