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>

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

另请参阅

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