当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


C++ longjmp() and setjmp()用法及代码示例

C++ 中的longjmp() 函数通过调用setjmp() 恢复先前保存的环境。

longjmp() 函数在<csetjmp> 头文件中定义。

longjmp()原型

void longjmp(jmp_buf env, int status);

要加载的环境存储在通过调用setjmp() 函数保存的参数 env 中。

longjmp()参数

  • env :jmp_buf 类型的对象,用于存储要加载的环境。
  • status : 从 setjmp 返回的变量。如果它等于 0,则使用 1 代替。

longjmp() 返回值

  • None

示例:longjmp() 函数如何工作?

#include <iostream>
#include <csetjmp>
using namespace std;

int main()
{
    jmp_buf env;
    int val;
    
    val = setjmp(env);
    if (val==0)
    {
        cout << "setjmp returned " << val << endl;
        longjmp(env,val);
    }
    else
    {
        cout << "setjmp returned " << val << endl;
        cout << "Program terminating" << endl;
    }

    return 0;
}

运行程序时,输出将是:

setjmp returned 0
setjmp returned 1
Program terminating

相关用法


注:本文由纯净天空筛选整理自 C++ longjmp() and setjmp()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。