本文共 852 字,大约阅读时间需要 2 分钟。
setjmp???????????????????longjmp????????setjmp???????????????jump_buf????????????longjmp?????setjmp????????
?????setjmp????????null?????setjmp????????????????????????setjmp???????longjmp?????????????????????????????setjmp?????longjmp????????????setjmp?????????????????????
???????setjmp???????????????if?switch?while?????????????????????????????
???????setjmp?longjmp????
#include#include static jmp_buf jump_buffer;noreturn void a(int count) { ("a(%d) called\n", count); longjmp(jump_buffer, count + 1);}int main(void) { volatile int count = 0; if (setjmp(jump_buffer) != 9) { a(count++); }}
???????setjmp?????????????setjmp?????9?????????a???count?????a????longjmp??????????????setjmp????????????
???????
a(0) calleda(1) calleda(2) calleda(3) calleda(4) calleda(5) calleda(6) calleda(7) calleda(8) called
转载地址:http://pabg.baihongyu.com/