C / C++中的fegetexceptflag()函数在头文件fenv.h中指定,并获取浮点异常标志。此函数将引发的异常存储在flagp指定的点中。
句法:
int fegetexceptflag(fexcept_t* flagp, int excepts)
参数:该函数接受两个强制性参数,如下所述:
- flagp:表示存储表示形式的fexcept_t对象的指针。
- 除了:表示位掩码值。
宏–>说明:
- FE_DIVBYZERO –>极点错误:除以零。
- FE_INEXACT –>不精确:结果不准确。
- FE_INVALID –>域错误:参数中的至少一个是未为其定义函数的值。
- FE_OVERFLOW –>溢出范围错误:结果太大。
- FE_UNDERFLOW –>下溢范围错误:结果太小。
- FE_ALL_EXCEPT –>所有异常。
返回值:函数返回两个值,如下所示:
- 零:成功。
- 非零:失败时
下面的程序说明了上述函数:
程序1:
// C++ program to illustrate
// fegetexceptflag() function
#include
using namespace std;
int main()
{
// bitmask value
fexcept_t excepts;
// divided by zero exception
feraiseexcept(FE_DIVBYZERO);
// current state is saved
fegetexceptflag(&excepts, FE_ALL_EXCEPT);
cout << "Exception raised -> \n";
// print the exception occurred
if (fetestexcept(FE_ALL_EXCEPT)) {
if (fetestexcept(FE_DIVBYZERO))
cout << "FE_DIVBYZERO \n";
if (fetestexcept(FE_INEXACT))
cout << "FE_INEXACT \n";
if (fetestexcept(FE_INVALID))
cout << "FE_INVALID \n";
if (fetestexcept(FE_OVERFLOW))
cout << "FE_OVERFLOW \n";
if (fetestexcept(FE_UNDERFLOW))
cout << "FE_UNDERFLOW \n";
if (fetestexcept(FE_ALL_EXCEPT))
cout << "FE_ALL_EXCEPT \n";
}
else
cout << "None";
return 0;
}
输出:
Exception raised ->
FE_DIVBYZERO
FE_ALL_EXCEPT
程序2:
// C++ program to illustrate
// fegetexceptflag() function
#include
using namespace std;
int main()
{
// bitmask value
fexcept_t excepts;
// raised exception
feraiseexcept(FE_ALL_EXCEPT);
// current state is saved
fegetexceptflag(&excepts, FE_ALL_EXCEPT);
cout << "Exception raised -> \n";
// print the exception occurred
if (fetestexcept(FE_ALL_EXCEPT)) {
if (fetestexcept(FE_DIVBYZERO))
cout << "FE_DIVBYZERO \n";
if (fetestexcept(FE_INEXACT))
cout << "FE_INEXACT \n";
if (fetestexcept(FE_INVALID))
cout << "FE_INVALID \n";
if (fetestexcept(FE_OVERFLOW))
cout << "FE_OVERFLOW \n";
if (fetestexcept(FE_UNDERFLOW))
cout << "FE_UNDERFLOW \n";
if (fetestexcept(FE_ALL_EXCEPT))
cout << "FE_ALL_EXCEPT \n";
}
else
cout << "None";
return 0;
}
输出:
Exception raised ->
FE_DIVBYZERO
FE_INEXACT
FE_INVALID
FE_OVERFLOW
FE_UNDERFLOW
FE_ALL_EXCEPT
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。