非本地跳转:setjmp.h

作者:追风剑情 发布于:2020-6-22 9:41 分类:C

setjmp.h头文件可以让你不遵循通常的函数调用、函数返回顺序。setjmp()函数把当前执行环境的信息(例如,指向当前指令的指针)储存在jmp_buf类型(定义在setjmp.h头文件中的数组类型)的变量中,然后longjmp()函数把执行转至这个环境中。这些函数主要是用来处理错误条件,并不是通常程序流程控制的一部分。

setjmp.h中的函数
原型 描述
int setjmp(jmp_buf env) 把调用环境储存在数组env中,如果是直接调用,则返回0;如果是通过longjmp()调用,则返回非0
void longjmp(jmp_buf env, int val) 恢复最近的setjmp()调用(设置env数组)储存的环境;完成后,程序继续像调用setjmp()那样执行该函数,返回val(但是该函数不允许返回0,会将其转换成1)

标签: C语言

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号