<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 | 更新浮点环境的函数。 |