欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

不同函数之间的跳转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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。