#include #include #include jmp_buf env; int i=3; void myproc(int num); void first(void); int main() { first(); printf("after first, i=%d\n",i); } void first (void) { int j=5,ret; if (0 == (ret=setjmp(env))) { printf("First call to setjmp\n"); printf("i=%d, ret=%d\n",i,ret); j=3; myproc(0); } else { printf("Return from Long Jump\n"); printf("j=%d, ret=%d\n",j,ret); } } void myproc(int num) { if (num < i) { printf("In my proc,num= %d\n",num); myproc(num +1); } else i=0; longjmp( env, 1); }