首页 > 代码库 > C setjmp和longjmp
C setjmp和longjmp
#include <stdio.h> #include <setjmp.h> void test(jmp_buf *env) { printf("setjmp test\n"); longjmp(env, 1); } int main() { jmp_buf env; int ret = setjmp(env); if (!ret) test(&env); else printf("longjmp... %d\n", ret); return 0; }
int setjmp(jmp_buf env):函数会保存当前执行环境,初次调用时会返回0值;在调用链中如果遇到void long_jmp(jmp_buf env, int value)时会返回该处,并取得value值。
与goto相比,longjmp可以实现函数间的跳转,goto只能在函数内部跳转。
C setjmp和longjmp
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。