一、代码
#include <setjmp.h>
jmp_buf、setjmp()、longjmp()
#include <stdio.h>
#include <setjmp.h>
//#include <setjmp.h>
//jmp_buf、setjmp()、longjmp()
//
jmp_buf j;
void raise_exception(void)
{
printf("before longjmp()\n");
//
longjmp(j, 1);
printf("this line should never output.\n");
}
int main(int argc, char* argv[])
{
//
if (setjmp(j) == 0)
{
printf("setjmp() success\n");
raise_exception();
printf("this line should never output.\n");
}
else
{
printf("after longjmp(), setjmp() exception handle\n");
}
return 0;
}
二、输出结果