编程模型:
#include <setjmp.h>
static jmp_buf jmpbuffer; //最好设置为全局变量
main()
{
if (setjmp(jmpbuffer) != 0) {
...
}
f1();
}
f1() {
f2();
}
f2() {
if () {
longjmp(jmpbuffer, 1); //这里的1会返回到setjmp中
}
}
jmpbuffer环境,包括全局变量,局部变量和volitile变量,寄存器变量。
全局变量:顾名思义肯定不会恢复之前的值。
而其他是不一定的。