feholdexcept
将当前浮点环境保存在指定对象中,清除浮点状态标志,如果可能,请将浮点环境置于不间断模式。
语法
int feholdexcept(
fenv_t *penv
);
参数
penv
指向 fenv_t
对象,以包含浮点环境的副本。
返回值
当且仅当函数能够成功启用不间断的浮点异常处理时,返回零。
注解
feholdexcept
函数用于存储 penv
指向的 fenv_t
对象中的当前浮动点环境状态,并设置环境以确保不中断浮点异常执行。 此模式被称为不间断模式。 此模式将继续,直到使用 fesetenv
或 feupdateenv
恢复环境为止。
在需要隐藏来自调用方的一个或多个浮点异常的子例程的开头,可以使用此函数。 只需使用 feclearexcept
清除不需要的异常,然后通过对 feupdateenv
的调用结束不间断模式就可报告异常。
若要使用此函数,必须在调用前先使用 #pragma fenv_access(on)
指令关闭可能会阻止访问的浮点优化。 有关详细信息,请参阅 fenv_access
。
要求
函数 | C 标头 | C++ 标头 |
---|---|---|
feholdexcept |
<fenv.h> | <cfenv> |
有关兼容性的详细信息,请参阅 兼容性。