feholdexcept

将当前浮点环境保存在指定对象中,清除浮点状态标志,如果可能,请将浮点环境置于不间断模式。

语法

int feholdexcept(
   fenv_t *penv
);

参数

penv
指向 fenv_t 对象,以包含浮点环境的副本。

返回值

当且仅当函数能够成功启用不间断的浮点异常处理时,返回零。

注解

feholdexcept 函数用于存储 penv 指向的 fenv_t 对象中的当前浮动点环境状态,并设置环境以确保不中断浮点异常执行。 此模式被称为不间断模式。 此模式将继续,直到使用 fesetenvfeupdateenv 恢复环境为止。

在需要隐藏来自调用方的一个或多个浮点异常的子例程的开头,可以使用此函数。 只需使用 feclearexcept 清除不需要的异常,然后通过对 feupdateenv 的调用结束不间断模式就可报告异常。

若要使用此函数,必须在调用前先使用 #pragma fenv_access(on) 指令关闭可能会阻止访问的浮点优化。 有关详细信息,请参阅 fenv_access

要求

函数 C 标头 C++ 标头
feholdexcept <fenv.h> <cfenv>

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

另请参阅

按字母顺序显示的函数参考
feclearexcept
fesetenv
feupdateenv