可以实现从一个函数体向另一个事先登记的函数体内跳转,而不用担心堆栈混乱

#include <setjmp.h>
#include <stdio.h>
 
jmp_buf b;
 
void f(){
    longjmp(b,1);
}
 
int main() {
    if (setjmp(b)){
        printf("World!\n");
    } else {
        printf("Hello ");
        f();
    }
}
➜  ./main                                         
Hello World!

时光倒流!