浮点环境

来自cppreference.com
< c‎ | numeric


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

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

类型

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

函数

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

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

引用

  • C17 标准(ISO/IEC 9899:2018):
  • 7.6 Floating-point environment <fenv.h> (第 150-156 页)
  • 7.31.4 Floating-point environment <fenv.h> (第 332 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.6 Floating-point environment <fenv.h> (第 206-215 页)
  • 7.31.4 Floating-point environment <fenv.h> (第 455 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.6 Floating-point environment <fenv.h> (第 187-196 页)

参阅