fetestexcept

确定当前设置了哪些指定的浮点异常状态标志。

语法

int fetestexcept(
   int excepts
);

参数

excepts
要测试的浮点状态标志的按位 OR。

返回值

如果成功,返回一个包含与当前设置的异常状态标志对应的浮点异常宏的按位 OR 的位掩码。 如果没有设置异常,则返回 0。

备注

使用 fetestexcept 函数来确定哪些异常由浮点运算引发。 使用 excepts 参数来指定要测试的异常状态标志。 fetestexcept 函数使用 excepts 中的这些异常宏(定义见 <fenv.h>)和返回值:

异常宏 说明
FE_DIVBYZERO 在早期的浮点运算中出现了奇点或极点错误;创建了无限值。
FE_INEXACT 此函数被强制舍入早期浮点运算的存储结果。
FE_INVALID 早期浮点运算中发生域错误。
FE_OVERFLOW 范围出错;早期浮点运算结果过大而无法表示。
FE_UNDERFLOW 早期的浮点运算结果因为过小而无法以完整的精度表示;创建了非常规值。
FE_ALL_EXCEPT 所有受支持的浮点异常的按位 OR。

指定的 excepts 参数可能为 0、一个受支持的浮点异常宏,或为两个或多个宏的按位 OR。 未定义任何其他 excepts 参数值的效果。

若要使用此函数,必须在调用前先使用 #pragma fenv_access(on) 指令关闭可能会阻止访问的浮点优化。 有关详细信息,请参阅 fenv_access

要求

函数 C 标头 C++ 标头
fetestexcept <fenv.h> <cfenv>

有关兼容性的详细信息,请参阅 兼容性

另请参阅

按字母顺序显示的函数参考
feclearexcept
feraiseexcept