C 参考手册
- C 语言
- C 关键词
- 预处理器
- C 标准库头文件
- 类型支持
- 程序支持工具
- 变参数函数
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 算法
- 数值
- 常用数学函数
- 浮点环境
- FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD
- feclearexcept
- fetestexcept
- feraiseexcept
- fegetexceptflag, fesetexceptflag
- fegetround, fesetround
- fegetenv, fesetenv
- feholdexcept
- feupdateenv
- FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, FE_UNDERFLOW, FE_ALL_EXCEPT
- FE_DFL_ENV
- 伪随机数生成
- 复数算术
- 泛型数学
- 文件输入/输出
- 本地化支持
- 原子操作库
- 线程支持库
- 实验性 C 标准库
- 有用的资源
- 符号索引
- 注释
浮点环境
浮点环境是浮点状态标志及实现所支持的控制模式的集合。它是线程局域的,每个线程从亲线程继承其浮点环境的初始状态。浮点运算会修改指示反常值或补助信息的浮点状态标志。浮点控制模式影响浮点运算的结果。
仅若设置
#pragma STDC FENV_ACCESS 为 ON
,浮点环境的访问及修改才有意义。否则具体实现可以自由地假设浮点控制模式始终是默认值,而且浮点状态标志始终不被检测或修改。实际上,当前只有少数编译器,如 HP aCC 、 Oracle Studio 和 IBM XL 显式支持 #pragma
,但总之多数编译器允许有意义地访问浮点环境。
类型
定义于头文件
<fenv.h> | |
fenv_t | 表示整体浮点环境的类型 |
fexcept_t | 集中表示所有浮点异常状态标志的类型 |
函数
(C99) |
清除指定的浮点异常状态标志 (函数) |
(C99) |
确认设置了哪些浮点异常状态标志 (函数) |
(C99) |
引发指定的浮点异常状态标志 (函数) |
(C99)(C99) |
将指定的浮点异常状态标志从指定的浮点环境获取,再设置到指定浮点环境的操作。 (函数) |
(C99)(C99) |
获得或设置数字的舍入方向 (函数) |
(C99)(C99) |
保存或恢复当前浮点环境,包括异常的标志和数字的舍弃模式 (函数) |
(C99) |
保存当前环境的异常状态标志,再清除所有异常状态标志,并忽略所有未来错误 (函数) |
(C99) |
恢复之前保存的浮点环境,并引发之前已经引发过的异常,使其存在于当前内存环境中 (函数) |
宏
浮点异常 (宏常量) | |
浮点舍入方向 (宏常量) | |
(C99) |
默认浮点环境 (宏常量) |
引用
- C11 standard (ISO/IEC 9899:2011):
- 7.6 Floating-point environment <fenv.h> (p: 206-215)
- 7.31.4 Floating-point environment <fenv.h> (p: 455)
- C99 standard (ISO/IEC 9899:1999):
- 7.6 Floating-point environment <fenv.h> (p: 187-196)