当前位置: C语言 -- 标准库 -- <fenv.h>

<fenv.h>头文件

浮点环境(floating-point environment)是实现支持的浮点状态标志(foating-point status flags)和浮点控制模式(floating-point control modes)的统称。浮点状态标志是系统变量,其值在引发浮点异常时设置(但永远不会清除。),是作为异常浮点算术提供辅助信息的副作用发生的。浮点状态标志不是对象,可以在表达式中多次设置。浮点控制模式是值可以由用户设置的系统变量,用以影响后续的浮点运算。

浮点环境具有线程存储期限。线程浮点环境的初始状态是线程创建时创建它的线程的浮点环境的当前状态。


<fenv.h>头文件定义了多个宏,并声明了多个类型和函数,用以访问浮点环境,具体如下:

编译提示(pragma):
FENV_ACCESS 表示访问浮点环境的编译提示。

类型(type):
fenv_t 表示整个浮点环境的类型。
fexcept_t 表示浮点状态标志的类型。

宏(macro):
与浮点异常有关的宏:
FE_ALL_EXCEPT 表示所有异常的宏。
FE_DIVBYZERO 表示极点异常的宏。
FE_INEXACT 表示不准确结果异常的宏。
FE_INVALID 表示域异常的宏。
FE_OVERFLOW 表示溢出范围异常的宏。
FE_UNDERFLOW 表示下溢范围异常的宏。
与舍入模式有关的宏:
FE_DOWNWARD 表示向下舍入的宏。
FE_TONEAREST 表示就近舍入的宏。
FE_TOWARDZERO 表示向0舍入的宏。
FE_UPWARD 表示向上舍入的宏。
与整个浮点环境有关的宏:
FE_DFL_ENV 表示默认浮点环境的宏。

函数(function):
与浮点异常有关的函数:
feclearexcept 清除浮点异常的函数。
fegetexceptflag 获取浮点异常标志的函数。
feraiseexcept 引发浮点异常的函数。
fesetexceptflag 设置浮点异常标志的函数。
fetestexcept 测试浮点异常的函数。
与舍入模式有关的函数:
fegetround 获取舍入模式的函数。
fesetround 设置舍入模式的函数。
与整个浮点环境有关的函数:
fegetenv 获取浮点环境的函数。
feholdexcept 保存当前浮点环境的函数。
fesetenv 设置浮点环境的函数。
feupdateenv 更新浮点环境的函数。