feupdateenv

保存当前引发的浮点异常,还原指定的浮点环境状态,并引发已保存的浮点异常。

语法

int feupdateenv(
   const fenv_t* penv
);

参数

penv
指向 fenv_t 对象的指针,其中包含通过调用 fegetenvfeholdexcept 设置的浮点环境。 此外,也可使用 FE_DFL_ENV 宏指定默认启动浮点环境。

返回值

如果所有操作已成功完成,则返回 0。 否则,返回一个非零值。

备注

feupdateenv 函数执行多个操作。 首先,它在自动存储中存储当前引发的浮点异常状态标志。 然后,它将从存储在由 penv 指向 fenv_t 的对象中的值设置当前浮点环境。 如果 penv 不是 FE_DFL_ENV,或者不指向有效的 fenv_t 对象,则不定义后续行为。 最后,feupdateenv 引发本地存储的浮点异常。

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

要求

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

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

另请参阅

fegetenv
feclearexcept
feholdexcept
fesetexceptflag