您的位置:首页 > 编程语言 > C语言/C++

setjmp.h

2016-05-09 13:42 399 查看

1、示例代码

#include
#include

int main()
{
jmp_buf j;//保存当前环境
if(setjmp(j) == 0)
{
printf("setjmp初始化\n");
longjmp(j,1);
printf("不会执行这句话\n");
}
else
{
printf("这句会输出\n");
}
return 0;
}


2、使用setjmp和longjmp写个死循环

#include <stdio.h>
#include <setjmp.h>

int main()
{
jmp_buf j;
setjmp(j);
printf("不停输出这句话\n");
longjmp(j,0);
return 0;
}

3、稍加解释

setjmp()将当前程序栈环境变量保存在jmp_buf类型的j中。

longjmp(j,value)恢复jmp_buf保存的环境(即跳转到最近一次使用setjmp的地方)。

setjmp第一次调用返回值为0。

当使用longjmp后,再次调用setjmp返回值为value
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 setjmp.h