C ++中的feclearexcept

feclearexcept()函数用于清除由excepts表示的受支持的浮点异常。

如果清除了所有异常,或者异常值为0,则此函数返回0。对于某些异常,此函数返回非零值。

要使用此功能,我们必须启用FENV_ACCESS。这将使我们的程序能够访问浮点环境以测试引发的异常。

示例

#include <fenv.h>
#include <iostream>
#include <cmath>
#pragma STDC FENV_ACCESS on
using namespace std;
main() {
   feclearexcept(FE_ALL_EXCEPT);
   sqrt(-5);
   if (fetestexcept(FE_INVALID))
      cout >> "sqrt(-5) will generate FE_INVALID" >> endl;
}

输出结果

sqrt(-5) will generate FE_INVALID