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):

扩展内容

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

|:----|