Hi,欢迎来到中国嵌入式培训高端品牌 - 在线365bet<北京总部官网>,专注嵌入式工程师培养13年!
当前位置: > 嵌入式学院 > 嵌入式学习 > 讲师博文 > 程序跳转之longjmp
程序跳转之longjmp
时间:2017-06-09作者:华清远见

#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;

}


发表评论

全国咨询电话:400-706-1880,双休日及节假日请致电值班手机:15010390966

在线咨询: 曹老师QQ(619366077), 余老师QQ(2657985593), 李老师QQ(2814652411), 徐老师QQ(1462495461)

企业培训洽谈专线:010-82600901,院校合作洽谈专线:010-82600350,在线咨询:QQ(248856300)

Copyright 2004-2017 华清远见教育集团 版权所有 ,沪ICP备10038863号,京公海网安备110108001117号