#include「setjmp.h」

    技术2024-12-21  20

    这一篇暂时不掌握

    #include<stdio.h> #include<stdlib.h> #include<setjmp.h> /* @作用: 1:C语言中不能使用goto跳转到另一个函数中的具体某处;\ 但提供了两个函数——setjmp 和 longjmp可以提转到任意程序的任意位置 2:通常作为异常处理机制! @结构体jmp_buf @setjmp()与longjmp()的使用 --> 通俗解释:先调用setjmp(),set_buf记录当前的位置,\ 再调用longjmp,返回envbuf所记录的位置\ //第一次setjmp()返回值=0 //第一次后的setimp()返回值 = longjmp(buf,参数2)的参数2 */ //例: jmp_buf buf; //创建jmp_buf结构体变量 void Func() { if (setjmp(buf)!=0) //第一次入栈返回值为0; { printf("执行异常程序!\n"); exit (0); } } void SETJMP() { Func(); //主函数运行异常执行程序,保存执行程序SP等状态的堆栈 //正常执行程序 printf("异常发生\n"); //如果程序发生了异常 longjmp(buf, 1); //异常执行程序出栈,跳转执行异常执行程序! //注意:用exit (0) 结束程序! }
    Processed: 0.014, SQL: 9