|
#include
#include
#include
static buf; //定义一个静态的buf
main()
{
volatile int b; //变量b,在其他线程修改时立即保存
b=3;
if(setjmp(buf)!=0) //setjmp标记跳转的位置,第一次执行该语句是setjmp()返回值是0;
{
printf("%d ",b);
exit(0);
}
b=5;
longjmp(buf,1); //跳转到标记的位置,即setjmp(buf)语句,此时该语句返回值是1。
}
所以,运行结果应该是35
至于说if(){......}else{},就不用我说了吧。
你可以去验证一下 |
|