C 语言中 setjmp 和 longjmp( 四 )
voidlongjmp(jmp_bufenvintval);
longjmp 函数的功能是从 jmp_buf 结构体中恢复由 setjmp 函数保存的上下文 , 该函数不返回 , 而是从 setjmp 函数中返回 。
参数 env 是由 setjmp 函数保存过的上下文 。
参数 val 表示从 longjmp 函数传递给 setjmp 函数的返回值 , 如果 val 值为0 , setjmp 将会返回1 , 否则返回 val 。
longjmp 不直接返回 , 而是从 setjmp 函数中返回 , longjmp 执行完之后 , 程序就像刚从 setjmp 函数返回一样 。
简单实例
下面是个简单的例子 , 虽然还只是函数内跳转 , 但足以说明这两个函数的功能了 。
运行该程序得到的结果为:
i=0
i=2
C 语言异常处理
推荐阅读
- msi|DK碾压C9拿到MSI首胜,但却暴露了一个问题,姿态赛前一言中的!
- 5G|美方刚换了5G新策略,中国移动就宣布大消息,任正非言中了
- 美国突然宣布,弱点终被暴露,任正非早就言中!
- 是哗众取宠还是泄露天机?美国最知名算命婆,临终前这般预言中国
- C/C++编程笔记:浅析 C 语言中宏定义的使用,知识点全解
- 为什么C语言中的字符串可以用指针表示?
- 王思聪言中?美股上市不到半年股价腰斩,如涵控股或遭投资者集体诉讼
- 在爱因斯坦众多预言中,还曾预言了中国,如今已应验证明他的远见
- 语特欧亚全语言中心在苏州正式起航
- 玛雅文明的5个预言中,有4个已应验,为何唯独2012错了?