/* longjmp example */ #include <stdio.h> /* printf */ #include <setjmp.h> /* jmp_buf, setjmp, longjmp */ main() { jmp_buf env; int val; val=setjmp(env); printf ("val is %d\n",val); if (!val) longjmp(env, 1); return 0; } |
setjmp | 为跳转保留调用环境(宏 ) |
jmp_buf | 保存信息以恢复调用环境的类型(类型) |