feraiseexcept
引发指定的浮点异常。
语法
int feraiseexcept(
int excepts
);
参数
excepts
要引发的浮点异常。
返回值
如果指定的所有异常都成功引发,则返回 0。
备注
feraiseexcept
函数尝试引发由 excepts
指定的浮点异常。 feraiseexcept
函数支持 <fenv.h> 中定义的这些异常宏:
异常宏 | 说明 |
---|---|
FE_DIVBYZERO |
在早期的浮点运算中出现了奇点或极点错误;创建了无限值。 |
FE_INEXACT |
此函数被强制舍入早期浮点运算的存储结果。 |
FE_INVALID |
早期浮点运算中发生域错误。 |
FE_OVERFLOW |
范围出错;早期浮点运算结果过大而无法表示。 |
FE_UNDERFLOW |
早期的浮点运算结果因为过小而无法以完整的精度表示;创建了非常规值。 |
FE_ALL_EXCEPT |
所有受支持的浮点异常的按位 OR。 |
excepts
参数可能为零、一个异常宏值,或为两个或多个受支持的异常宏的按位 OR。 如果指定的异常宏之一是 FE_OVERFLOW
或 FE_UNDERFLOW
,则可能会引发 FE_INEXACT
异常作为副作用。
若要使用此函数,必须在调用前先使用 #pragma fenv_access(on)
指令关闭可能会阻止访问的浮点优化。 有关详细信息,请参阅 fenv_access
。
Microsoft 特定:按 FE_INVALID
、FE_DIVBYZERO
、FE_OVERFLOW
、FE_UNDERFLOW
、FE_INEXACT
的顺序引发 excepts
中指定的异常。 但是,即使未在 excepts
中指定,当引发 FE_OVERFLOW
或 FE_UNDERFLOW
时,也可能引发 FE_INEXACT
。
要求
函数 | C 标头 | C++ 标头 |
---|---|---|
feraiseexcept |
<fenv.h> | <cfenv> |
有关兼容性的详细信息,请参阅 兼容性。
另请参阅
按字母顺序显示的函数参考
fesetexceptflag
feholdexcept
fetestexcept
feupdateenv