共用方式為


setjmp

儲存程式的目前狀態。

int setjmp(
   jmp_buf env 
);

參數

  • env
    儲存環境變數。

傳回值

在儲存堆疊環境後傳回 0。如果setjmp的結果會傳回longjmp呼叫時,它會傳回value引數的longjmp,或是否value引數的longjmp為 0, setjmp ,則傳回 1。沒有任何錯誤傳回。

備註

setjmp函式會將儲存堆疊環境中,您可以接著還原,請使用longjmp。一起使用時, setjmp和longjmp提供方法來執行非本端goto。它們通常用來傳遞給錯誤處理或復原之前被呼叫的常式中的程式碼的執行控制項,而不需使用一般電話,或是傳回慣例。

呼叫setjmp會儲存在目前的堆疊環境env。後續呼叫longjmp還原先前儲存的環境,並只在對應之後,才能將控制權傳回給點setjmp呼叫。所有變數 (除非暫存器變數) 常式,接收控制可存取都包含這些應用程式啟動時的值longjmp呼叫。

您不能使用setjmp若要從 managed 程式碼的原生移。

注意事項   setjmp與longjmp不支援 C++ 物件的語意。在 C++ 程式中,使用 C++ 例外處理機制。

如需詳細資訊,請參閱使用 setjmp 和 longjmp

需求

常式

所需的標頭

setjmp

<setjmp.h>

其他的相容性資訊,請參閱相容性在簡介中。

範例

請參閱範例的 _fpreset

.NET Framework 對等用法

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

請參閱

參考

處理程序和環境控制

longjmp

_setjmp3