fenv.hC标准函数库中的头文件,提供了对浮点环境的支持。浮点环境(floating-point environment)是指任何实现支持的浮点状态标志与控制模式。浮点状态标志(floating-point status flag)是一个系统变量,当浮点异常被抛出时该系统变量被置位。浮点控制模式(floating-point control mode)是一个系统变量,用户可以对其置位,以影响随后的浮点运算行为。

类型

  • fenv_t 表示整体浮点环境
  • fexcept_t 表示浮点状态的集合

  • 表示各种浮点运算异常:
    • FE_DIVBYZERO
    • FE_INEXACT
    • FE_INVALID
    • FE_OVERFLOW
    • FE_UNDERFLOW
    • FE_ALL_EXCEPT
  • 近似舍入方法
    • FE_DOWNWARD
    • FE_TONEAREST
    • FE_TOWARDZERO
    • FE_UPWARD
  • 缺省浮点环境
    • FE_DFL_ENV

函数

  • feclearexcept 清除给定的浮点异常
  • fegetexceptflag 保存一个浮点状态标志到对象中
  • feraiseexcept 抛出一个浮点异常
  • fesetexceptflag 设置一个浮点状态标志到对象中
  • fetestexcept 测试那些浮点异常标志被置位
  • fegetround 获取当前近似舍入方法
  • fesetround 设置近似舍入方法
  • fegetenv 存储当前浮点环境到对象中
  • feholdexcept 存储当前浮点环境到对象中,清楚浮点状态标志,安装non-stop模式
  • fesetenv 从对象存储的浮点环境恢复现场
  • feupdateenv 保存当前浮点异常,从对象存储的浮点环境恢复现场,再重新抛出当前浮点异常

参考文献

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.