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++ log2()用法及代码示例
- C++ log10()用法及代码示例
- C++ localtime()用法及代码示例
- C++ complex log()用法及代码示例
- C++ logb()用法及代码示例
- C++ log()用法及代码示例
- C++ log1p()用法及代码示例
- C++ localeconv()用法及代码示例
- C++ complex log10()用法及代码示例
- C++ list assign()用法及代码示例
- C++ llround()用法及代码示例
- C++ list front()用法及代码示例
- C++ list::remove()、list::remove_if()用法及代码示例
- C++ lrint() and llrint()用法及代码示例
- C++ lldiv()用法及代码示例
- C++ list back()用法及代码示例
- C++ list merge()用法及代码示例
- C++ ldiv()用法及代码示例
- C++ list remove()用法及代码示例
- C++ list push_back()用法及代码示例
注:本文由纯净天空筛选整理自 C++ longjmp() and setjmp()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。