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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。