setjmp&longjmp

来源:互联网 发布:矩阵相乘值的性质 编辑:程序博客网 时间:2024/05/19 15:20
#include <stdio.h>#include <setjmp.h>jmp_buf env;void banana(void){    printf("in banana\n");    // 表示回到env所记录的位置,此时setjmp返回i(i=2)    // 并且调用完成之后env内容被销毁    // 下边的打印不会被执行到    longjmp(env, 2);    printf("out banana\n");}int main(void){    int r;    // 使用全局变量env记录现在的位置,函数返回0    r = setjmp(env);    if (0 == r)    {        printf("first through\n");        banana();    }    else if (2 == r)    {        printf("back in main\n");    }    return 0;}

0 0
原创粉丝点击