摘要:
C语言没有像Java那样的try catch处理异常错误的能力,不过可以用setjmp和longjmp两个函数实现错误处理的基本逻辑。setjmp(BUFFER)会将程序当前的寄存器状态保存到BUFFER数组里,这个数组用jmp_buf定义:#include <setjmp.h>
jmp_buf BUFFER;longjmp(BUFFER, n)将程序流跳到setjmp的位置,同时恢复BUFFER中保存的状态。第二个参数n为一个整数,当通过longjmp(BUFFER, n)跳转到setjmp位置时,setjmp函数的返回值为n;否则,如果是直接执行setjmp,则返回为零。根据这 阅读全文