📄 setjmp.c
字号:
/** setjmp/longjmp tests.*/#include <testfwk.h>#include <setjmp.h>unsigned int global_int = 0;unsigned int *gpInt;#if defined(SDCC_mcs51)#include <8052.h>void T2_isr (void) interrupt 5 //no using{ //do not clear flag TF2 so it keeps interrupting ! (*gpInt)++;}#endif#if defined(SDCC_mcs51) || defined(PORT_HOST)void try_fun(jmp_buf catch, int except){ longjmp(catch, except);}#endifvoidtestJmp(void){#if defined(SDCC_mcs51) || defined(PORT_HOST) jmp_buf catch; int exception;#if defined(SDCC_mcs51) gpInt = &global_int; //enable the interrupt and set it's flag to generate some heavy stack usage ET2 = 1; EA = 1; TF2 = 1;#endif exception = setjmp(catch); if (exception == 0) { try_fun(catch, 1); //should not get here! ASSERT(0); } ASSERT(exception == 1);#endif}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -