Note setjmp and longjmp are ANSI macros that Visual C++ expands to
_ _setjmp and _ _longjmp.
If you write code that uses both _ _setjmp and _ _longjmp and also uses structured exception handling, then you must include the #include module named SETJMPEX.H in the compilations of your source code. Including SETJMPEX.H in these situations causes the Alpha Visual C++ compiler to generate additional code for invocations of _ _setjmp and _ _longjmp that saves and restores the internal context required to interoperate properly with C++ structured exception handling. In addition, during _ _longjmp processing, all finally actions, exception filters, and catch handlers are invoked before control is transferred to the site of the associated _ _setjmp call. Upon return to the site of the _ _setjmp, all local variables reflect their updated values.
The additional processing comes at a price in performance of _ _longjmp. This performance degradation can vary widely depending on the platform and application. In general, if you do not require the coexistence of _ _setjmp and _ _longjmp and structured exception handling in your code, you should not include SETJMPEX.H in your compilations.