#include <stdio.h> #include <stdlib.h> #include <setjmp.h> jmp_buf jb; void f1() { printf("进入f1() "); if(0/*正确执行*/){ } else { longjmp(jb,1); } printf("退出f1() "); } void f2() { printf("进入f2() "); if(1/*正确执行*/) { } else { longjmp(jb, 2); } printf("退出f2() "); } int main() { int r = setjmp(jb); if(r==0){ f1(); f2(); }else if(r==1){ printf("处理错误1 "); exit(1); }else if(r==2){ printf("处理错误2 "); exit(2); } return 0; }