非常教程

C参考手册

数值 | Numerics

Floating-point environment

浮点环境是实现支持的一组浮点状态标志和控制模式。它是线程本地的,每个线程都从父线程继承其浮点环境的初始状态。浮点操作修改浮点状态标志以指示异常结果或辅助信息。浮点控制模式的状态会影响某些浮点运算的结果。

只有当#pragma STDC FENV_ACCESS设置为ON时,浮点环境访问和修改才有意义。 否则,实现可以自由地假定浮点控制模式总是默认的,并且浮点状态标志从不被测试或修改。 实际上,目前很少有编译器(如HP aCC,Oracle Studio和IBM XL)明确支持#pragma,但大多数编译器都允许有意义地访问浮点环境。

类型

| 在头文件<fenv.h>中定义 |

|:----|

| fenv_t | 表示整个浮点环境|的类型

| fexcept_t | 表示所有浮点状态标志的类型统称为|

功能

feclearexcept(C99)

清除指定的浮点状态标志(函数)

fetestexcept(C99)

确定哪个指定的浮点状态标志被设置(功能)

feraiseexcept(C99)

引发指定的浮点异常(函数)

fegetexceptflagfesetexceptflag(C99)(C99)

将指定的浮点状态标志的状态从浮点环境(函数)复制到浮点环境

fegetroundfesetround(C99)(C99)

获取或设置舍入方向(功能)

fegetenvfesetenv(C99)

保存或恢复当前的浮点环境(功能)

feholdexcept(C99)

保存环境,清除所有状态标志并忽略所有将来的错误(功能)

feupdateenv(C99)

恢复浮点环境并引发以前引发的异常(函数)

FE_ALL_EXCEPTFE_DIVBYZEROFE_INEXACTFE_INVALIDFE_OVERFLOWFE_UNDERFLOW (C99)

floating-point exceptions (macro constant)

FE_DOWNWARDFE_TONEARESTFE_TOWARDZEROFE_UPWARD (C99)

floating-point rounding direction (macro constant)

FE_DFL_ENV (C99)

default floating-point environment (macro constant)

参考

  • C11标准(ISO / IEC 9899:2011):
    • 7.6浮点环境<fenv.h>(p:206-215)
    • 7.31.4浮点环境<fenv.h>(p:455)
  • C99标准(ISO / IEC 9899:1999):
    • 7.6浮点环境<fenv.h>(p:187-196)

扩展内容

| 用于浮点环境的C ++文档 |

|:----|

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。