setjmp

保存程序的当前状态。

int setjmp(
   jmp_buf env 
);

参数

  • env
    环境中存储的变量。

返回值

在保存堆栈环境后返回 0。 如果 setjmp 返回由于 longjmp 调用,它将返回 longjmp的 value 参数,或者,如果 longjmp 的 value 参数是 0, setjmp 返回 1。 无错误返回。

备注

setjmp 功能保存一个堆栈环境,使用 longjmp,可以随后还原,。 当使用时, setjmp 和 longjmp 提供一种执行非本地 goto。 它们通常用于将执行控件绑定到以前调用实例的错误处理或还原代码,而不使用常规的调用或返回约定。

为 setjmp 的调用保存在 env的当前堆栈环境。 ,在相应的 setjmp 调用后,对的后续调用 longjmp 还原已保存的环境并将控制权返回给点。 设置所有变量 (除寄存器变量) 可以访问接收控件的实例包含值 longjmp 时调用。

使用 setjmp 从本机跳转到托管代码是不可能的。

Note   setjmp 和 longjmp 不支持 C++ 对象语义。 在 C++ 程序,请使用异常处理机制的 C++。

有关更多信息,请参见 使用 setjmp 和 longjmp

要求

实例

必需的头

setjmp

setjmp.h

有关其他的兼容性信息,请参见中介绍的 兼容性

示例

_fpreset参见示例。

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例

请参见

参考

处理和环境控件

longjmp

_setjmp3