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> |
有关兼容性的详细信息,请参阅 兼容性。