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


C++ fetestexcept()用法及代碼示例


C++ 中的fetestexcept() 函數確定當前設置了哪個指定的浮點異常子集。

fetestexcept() 函數在<cfenv> 頭文件中定義。

fetestexcept()原型

int fetestexcept( int excepts );

fetestexcept()函數測試當前是否設置了excepts指定的浮點異常。參數excepts 是浮點異常宏的按位或。

參數:

  • excepts:位掩碼列出要測試的異常標誌。

返回:

  • 浮點異常宏的按位或運算,它們都包含在異常中並且對應於當前設置的浮點異常。

示例:fetestexcept() 函數如何工作?

#include <iostream>
#include <cmath>
#include <cfenv>
#pragma STDC FENV_ACCESS ON
using namespace std;

void print_exceptions()
{
	cout << "Raised exceptions: ";
	if(fetestexcept(FE_ALL_EXCEPT))
	{
		if(fetestexcept(FE_DIVBYZERO))
			cout << "FE_DIVBYZERO ";
		if(fetestexcept(FE_INEXACT))
			cout << "FE_INEXACT ";
		if(fetestexcept(FE_INVALID))
			cout << "FE_INVALID ";
		if(fetestexcept(FE_OVERFLOW))
			cout << "FE_OVERFLOW ";
		if(fetestexcept(FE_UNDERFLOW))
			cout << "FE_UNDERFLOW ";
	}
	else
		cout << "None";

	cout << endl;
}

int main(void)
{
	print_exceptions();
	
	feraiseexcept(FE_INVALID|FE_DIVBYZERO);
	print_exceptions();

	feclearexcept(FE_ALL_EXCEPT);
	print_exceptions();
	
	return 0;
}

運行程序時,輸出將是:

Raised exceptions: None
Raised exceptions: FE_DIVBYZERO FE_INVALID
Raised exceptions: None

相關用法


注:本文由純淨天空篩選整理自 C++ fetestexcept()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。