fesetexceptflag
在当前浮点环境中设置指定的浮点状态标志。
语法
int fesetexceptflag(
const fexcept_t *pstatus,
int excepts
);
参数
pstatus
指向 fexcept_t
对象的指针,其中包含要设置为异常状态标志的值。 该对象可由上一次 fegetexceptflag
调用设置。
excepts
要设置的浮点异常状态标志。
返回值
如果成功设置所有指定的异常状态标志,则返回 0。 否则,返回一个非零值。
备注
fesetexceptflag
函数将由 excepts
指定的浮点异常状态标志的状态设置为由 pstatus
指向的 fexcept_t
对象中设置的相应值。 它不会引发异常。 pstatus
指针必须指向有效的 fexcept_t
对象,或未定义后续行为。 fesetexceptflag
函数支持 excepts
中在 <fenv.h> 中定义的这些异常宏值:
异常宏 | 说明 |
---|---|
FE_DIVBYZERO |
在早期的浮点运算中出现了奇点或极点错误;创建了无限值。 |
FE_INEXACT |
此函数被强制舍入早期浮点运算的存储结果。 |
FE_INVALID |
早期浮点运算中发生域错误。 |
FE_OVERFLOW |
范围出错;早期浮点运算结果过大而无法表示。 |
FE_UNDERFLOW |
早期的浮点运算结果因为过小而无法以完整的精度表示;创建了非常规值。 |
FE_ALL_EXCEPT |
所有受支持的浮点异常的按位 OR。 |
excepts
参数可能为零、一个受支持的浮动点异常宏,或为两个或多个宏的按位 OR。 未定义任何其他 参数值的效果。
若要使用此函数,必须在调用前先使用 #pragma fenv_access(on)
指令关闭可能会阻止访问的浮点优化。 有关详细信息,请参阅 fenv_access
。
要求
函数 | C 标头 | C++ 标头 |
---|---|---|
fesetexceptflag |
<fenv.h> | <cfenv> |
有关兼容性的详细信息,请参阅 兼容性。