这一篇暂时不掌握

#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) 结束程序!
}