当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 程序跳转之longjmp

程序跳转之longjmp 时间:2018-09-29      来源:未知

#include <stdio.h>

#include <setjmp.h>

jmp_buf env1;

int func(void);

int main(int argc, const char *argv[])

{

int ret = 0;

printf("Before setjmp.\n");

// 保存当前的环境变量,longjmp 依赖此环境变量进行跳转

// 此函数的返回值,非跳转时,返回值为0,当对方跳转来,

// 返回值为longjmp的参数

ret = setjmp(env1);

if(ret == 0)

{

func();

}

else

{

printf("+++++++++, ret = %d\n", ret);

}

printf("After setjmp.\n");

return 0;

}

int func(void)

{

printf("In func.\n");

//完成程序的跳转,具有全局的作用范围,函数之间,文件之间,线程与线程之间

longjmp(env1, 3);

return 0;

}

上一篇:C++ 类构造函数

下一篇:Linux多线程与同步

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部