...
Code Block | ||
---|---|---|
| ||
jmp_buf buf; void f(void) { int i = setjmp(buf); if (i == 0) { g(); } else { /* longjmp was invoked */ } } void g(void) { /* ... */ longjmp(buf, 1); } |
...
Code Block | ||
---|---|---|
| ||
jmp_buf buf; void f(void) { if (setjmp(buf) == 0) { g(); } else { /* longjmp was invoked */ } } void g(void) { /* ... */ longjmp(buf, 1); } |
...
Code Block | ||
---|---|---|
| ||
jmp_buf buf; void f(void) { g(); h(); return; } void g(void) { if (setjmp(buf) != 0) { /* longjmp was invoked*/ } return; } void h(void) { /* ... */ longjmp(buf, 1); } |
...
Code Block | ||
---|---|---|
| ||
jmp_buf buf; void f(void) { if (setjmp(buf) != 0) { /* longjmp was invoked */ } else { h(); } return; } void h(void) { /* ... */ longjmp(buf, 1); } |
...
Code Block | ||
---|---|---|
| ||
jmp_buf buf; void f(void) { int i = 0; if (setjmp(buf) != 0) { printf("%i\n", i); /* ... */ } i = 2; g(); } void g(void) { /* ... */ longjmp(buf, 1); } |
...
Code Block | ||
---|---|---|
| ||
jmp_buf buf; void f(void) { volatile int i = 0; if (setjmp(buf) != 0) { printf("%i\n", i); /* ... */ } i = 2; g(); } void g(void) { /* ... */ longjmp(buf, 1); } |
...