setjmp/longjump

包括 setjmpex.h 或 setjmp.h 时,对 setjmplongjmp 的所有调用都将导致一个展开操作,该操作将调用析构函数并终止调用。这不同于 x86,x86 中的 setjmp.h 将产生 finally 子句,但不会调用析构函数。

setjmp 的调用会保存当前堆栈指针、非易失寄存器和 MxCsr 寄存器。对 longjmp 的调用将返回最近一次 setjmp 调用的位置,并将堆栈指针、非易失寄存器和 MxCsr 寄存器重置回最近一次 setjmp 调用保存的状态。

请参见

参考

调用约定