feholdexcept_C语言中文网

定义于头文件 <fenv.h>

int feholdexcept( fenv_t* envp );

(C99 起)

首先,保存当前浮点环境到 envp 所指向的对象(类似 fegetenv ),然后清除所有浮点状态标志,再安装不停止模式:未来的浮点异常将不中断执行(不会陷落),直至以 feupdateenvfesetenv 还原浮点状态。

此函数可用于必须从调用方隐藏它可能引发的浮点异常的子程序的起始。若只是必须抑制某些异常而必须报告其他,则通常在清除不想要的异常后,通过调用 feupdateenv 结束不停止模式。

参数

envp - 指向 fenv_t 类型对象的指针,将存储浮点环境于其中

返回值

成功时返回 0 ,否则返回非零。

示例

输出:

current exceptions raised:  FE_INVALID
In x2():  x = inf
current exceptions raised:  FE_INEXACT FE_OVERFLOW
x2(DBL_MAX) = inf
current exceptions raised:  FE_INVALID FE_OVERFLOW

引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.6.4.2 The feholdexcept function (p: 213-214)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.6.4.2 The feholdexcept function (p: 194-195)

参阅