fesetexcept函数
概要:
#include <fenv.h> int fesetexcept(int excepts);
描述:
该函数尝试设置参数excepts表示的实现支持的浮点异常标志。
该函数不会清除任何浮点异常标志;会改变浮点异常标志的状态,但不会引起与引发浮点异常可能相关的任何其它副作用(类似浮点异常陷阱和ISO/IEC 60559标准异常处理这样的实现扩展将不会发生。)。
fesetexcept函数和feraiseexcept函数的比较:
fesetexcept函数仅设置浮点异常标志,不会产生任何副作用,没有其它影响。
feraiseexcept函数会设置浮点异常标志,同时会触发一个完整的异常处理流程,可能产生标准或者实现定义的副作用,例如:可能会触发相应信号,也可能会执行设置的陷阱处理程序等。
函数fetestexcept、feraiseexcept、fesetexcept、feclearexcept支持设置或者清除浮点状态标志的基本抽象。具体实现中,浮点状态标志可能包含更多信息,例如:首次引发浮点异常的代码地址;函数fegetexceptflag、fesetexceptflag、fetestexceptflag能够处理浮点状态标志的全部内容。
参数:
int excepts
参数为位掩码值,表示浮点异常的子集,可以是0,也可以是一个或者多个实现支持的浮点异常宏的按位或运算值(例如:FE_OVERFLOW|FE_INEXACT)。如果参数是其它值,函数行为是未定义的。
返回值:
如果参数excepts为0或者如果所有指定异常都成功设置,函数返回0;否则函数返回非0值。
范例:
|
|
可能输出:
Exceptions: FE_INVALID
(注:编译时实现还未支持fesetexcept函数。)
相关内容:
| feclearexcept | 清除浮点异常(基本抽象)的函数。 |
| fegetexceptflag | 获取浮点状态标志状态(完整内容)的函数。 |
| feraiseexcept | 引发浮点异常(基本抽象)的函数。 |
| fetestexcept | 测试浮点异常标志(基本抽象)的函数。 |
| fesetexceptflag | 设置浮点状态标志(完整内容)的函数。 |
| fetestexceptflag | 测试浮点异常标志(完整内容)的函数。 |
主要参考资料: