浮点环境

< c‎ | numeric

浮点环境是浮点状态标志及实现所支持的控制模式的集合。它是线程局域的,每个线程从亲线程继承其浮点环境的初始状态。浮点运算会修改指示反常值或补助信息的浮点状态标志。浮点控制模式影响浮点运算的结果。

仅若设置 #pragma STDC FENV_ACCESSON ,浮点环境的访问及修改才有意义。否则具体实现可以自由地假设浮点控制模式始终是默认值,而且浮点状态标志始终不被检测或修改。实际上,当前只有少数编译器,如 HP aCC 、 Oracle Studio 和 IBM XL 显式支持 #pragma ,但总之多数编译器允许有意义地访问浮点环境。

类型

定义于头文件 <fenv.h>
fenv_t 表示整体浮点环境的类型
fexcept_t 集中表示所有浮点异常状态标志的类型

函数

清除指定的浮点异常状态标志
(函数)
(C99)
确认设置了哪些浮点异常状态标志
(函数)
引发指定的浮点异常状态标志
(函数)
将指定的浮点异常状态标志从指定的浮点环境获取,再设置到指定浮点环境的操作。
(函数)
获得或设置数字的舍入方向
(函数)
(C99)(C99)
保存或恢复当前浮点环境,包括异常的标志和数字的舍弃模式
(函数)
(C99)
保存当前环境的异常状态标志,再清除所有异常状态标志,并忽略所有未来错误
(函数)
(C99)
恢复之前保存的浮点环境,并引发之前已经引发过的异常,使其存在于当前内存环境中
(函数)

浮点异常
(宏常量)
浮点舍入方向
(宏常量)
(C99)
默认浮点环境
(宏常量)

引用

  • C11 标准(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 标准(ISO/IEC 9899:1999):
  • 7.6 Floating-point environment <fenv.h> (p: 187-196)

参阅