c语言中的异常处理,setjmp 与 longjmp函数
来源:互联网 发布:网络人脸搜索网站 编辑:程序博客网 时间:2024/05/21 06:21
最近在看jpeg编解码相关的知识,opencv在jpeg编解码上调用的是libjpeg,于是决定读一读libjpeg的源码,涨一涨姿势水平,发现一些新奇的东西(毕竟菜鸡),记录下来。
c++/java中的异常处理,try catch大家想必都非常了解了,那么c语言中如何实现异常处理呢,c语言提供了setjmp和longjmp两个函数供大家使用,这里简单介绍一下
int setjmp(jmp_buf envbuf);void longjmp(jmp_buf envbuf, int val);
函数原型如上所示,setjmp 初次调用时会返回0,而longjmp调用时则会调转到setjmp调用的位置(setjmp时由jmp_buf记录堆栈信息,从而longjmp时能找到当时的堆栈位置),并且longjmp指定的第二个参数val会作为调转至setjmp处的返回值
下面看一个简单的例子大家就明白啦:
这是一个java的例子
try { doLogic();} catch(Excpetion1 e) { doError1();} catch(Excpetion2 e) { doError2();}那么c如何实现呢
jmp_buf buf;int error_code = setjmp(buf);if(error_code == 1) { doError1();}else if(error_code == 2) { doError2();}doLogic();//如果内部出错则调用longjmp(buf, error_code)
0 0
- c语言中的异常处理,setjmp 与 longjmp函数
- 全面了解setjmp与longjmp(C语言异常处理机制)
- 全面了解setjmp与longjmp(C语言异常处理机制)
- 浅析C语言中的setjmp与longjmp函数
- 浅析C语言中的setjmp与longjmp函数
- C语言中的setjmp和longjmp函数
- c语言setjmp与longjmp函数
- C语言中的setjmp与longjmp
- C语言下的setjmp longjmp(C 语言异常处理)
- C语言异常处理机制, setjmp() and longjmp()
- C语言 控制转移 异常处理机制 setjmp & longjmp
- c语言异常处理之longjmp 和 setjmp
- C语言异常处理——setjmp & longjmp
- C语言中利用setjmp和longjmp做异常处理
- C语言中利用setjmp和longjmp做异常处理
- C语言中利用setjmp和longjmp做异常处理
- C语言利用setjmp和longjmp实现异常处理
- C语言实现异常处理(使用 setjmp 和 longjmp 函数)
- 如何在myeclipse里配置多个tomcat
- vim剪切命令
- 艾弗森、穆大叔遭“姚式幽默”调侃 全场爆笑
- 构建乘积数组
- 字符串
- c语言中的异常处理,setjmp 与 longjmp函数
- Spring Boot 中应用Spring data mongdb
- Spring最小化xml配置二之注解方式@Autowired
- 使用React-route和Webpack快速构建一个react程序
- 球员评历史最佳阵:乔丹魔术师坚如磐石詹皇选自己
- 一小时包教会 —— webpack 入门指南
- Android的ANR详解(原因和方案)
- 梯度下降法解多元线性回归
- 字符流中第一个不重复的字符