Algunas vez usaste un
goto en C?

pues eso...
También puedes usarlo para crear un bucle

...
int contador=0;
setjmp(estado
); // salvamos el offset del programa printf("contador %d\n", contador
); if (contador
++<10) longjmp(estado
,1); // cargamos el offset
...