當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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