当前位置:
首页 >
不同函数之间的跳转setjmp和longjmp
发布时间:2025/6/15
34
豆豆
生活随笔
收集整理的这篇文章主要介绍了
不同函数之间的跳转setjmp和longjmp
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
我们学过C语言中的goto,只能当前函数里面跳转是不能跨越函数的。setjmp和longjmp却可以跨越函数跳转。
#include <stdio.h> #include <setjmp.h>void f1(void); jmp_buf jmpbuffer;int main(void) { if(setjmp(jmpbuffer)!=0){printf("jmp\n");return 0;}f1(); return 0; }void f1() {longjmp(jmpbuffer,1); }编译运行,打印:jmp
函数从if里面返回了,则证明能跨函数跳转,其应用于在深层嵌套调用中错误的情况。
参考资料:unix环境高级编程
总结
以上是生活随笔为你收集整理的不同函数之间的跳转setjmp和longjmp的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: rand和srand
- 下一篇: setbuf()关闭缓冲