setjmp/longjump
Wenn Sie setjmpex.h oder setjmp.h einbinden, führen alle Aufrufe von setjmp oder longjmp zu einer Entladung, durch die Destruktoren und finally-Aufrufe ausgeführt werden. Im Gegensatz dazu hat beim x86-Compiler die Einbindung von stejmp.h zur Folge, das finally-Klauseln und Destruktoren nicht ausgeführt werden.
Durch einen Aufruf von setjmp werden der aktuelle Stapelzeiger, nicht flüchtige Register und MxCsr-Register beibehalten. Aufrufe von longjmp werden an die aktuelle setjmp-Aufrufsite zurückgegeben. Des Weiteren werden der Stapelzeiger, nicht flüchtige Register und MxCsr-Register auf den Zustand zurückgesetzt, der durch den letzten setjmp-Aufruf beibehalten wurde.