其实可以通过setjmp()和longjmp()配合使用
描述
和goto很相似, 但是可以从一个函数到另外一个函数的跳转,常常用在异常处理上面....这两个函数需要正确使用,否则会破坏程序顺序执行方式
头文件 #include
setjmp()和longjmp()
int setjmp(jmp_buf env);
将当前上下文保存在...jmp_buf结构体中(入栈),并返回0
void longjmp(jmp_buf env,int val);
从env变量jmp_buf结构体中恢复setjmp()保存的上下文(出栈,并跳转)
由于跳转...进入 setjmp()函数 后,由于发现除法为0,所以使用 longjmp(env,1)函数 ,恢复 setjmp() 保存的上下文,也就是直接返回到了 main()函数 处理 setjmp(env)...delta<b)&&(b<delta)))
{
return a/b ;
}
else
{
longjmp