http://kor.i2p/books/The%20C%20Programming%20Language%20by%20K&R/appb.html
A call to setjmp can only occur in certain contexts, basically the test of if , switch , and loops, and only in simple relational expressions. if (setjmp(env) == 0)
/* get here on direct call */
else
/* get here by calling longjmp */ void longjmp(jmp_buf env, int val) longjmp restores the state saved by the most recent call to setjmp , using the information saved in env , and execution
resumes as if the setjmp function had just executed and returned
the...