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 保存當前浮點異常,從對象存儲的浮點環境恢復現場,再重新拋出當前浮點異常

參考文獻