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 ++文档 |
|:----|