标准库标头 <fenv.h> (C99)
来自cppreference.com
此标头是浮点数环境库的一部分。
目录 |
[编辑] 类型
在标头
<fenv.h> 定义 | |
fenv_t | 表示整个浮点数环境的类型 |
fexcept_t | 表示所有浮点数状态标志的汇集的类型 |
[编辑] 函数
(C99) |
清除指定的浮点数异常状态标志 (函数) |
(C99) |
确认设置了哪些浮点数异常状态标志 (函数) |
(C99) |
引发指定的浮点数异常 (函数) |
(C99)(C99) |
将指定的浮点数异常状态标志从指定的浮点数环境获取,再设置到指定浮点数环境的操作。 (函数) |
(C99)(C99) |
获得或设置数字的舍入方向 (函数) |
(C99)(C99) |
保存或恢复当前浮点数环境,包括异常的标志和数字的舍弃模式 (函数) |
(C99) |
保存当前环境的异常状态标志,再清除所有异常状态标志,并忽略所有未来错误 (函数) |
(C99) |
恢复之前保存的浮点数环境,并引发之前已经引发过的异常,使其存在于当前内存环境中 (函数) |
[编辑] 宏
浮点数异常 (宏常量) | |
浮点数舍入方向 (宏常量) | |
(C99) |
默认浮点数环境 (宏常量) |
[编辑] 概要
#define __STDC_VERSION_FENV_H__ 202311L #define FE_ALL_EXCEPT /* 见描述 */ #define FE_DIVBYZERO /* 见描述 */ #define FE_INEXACT /* 见描述 */ #define FE_INVALID /* 见描述 */ #define FE_OVERFLOW /* 见描述 */ #define FE_UNDERFLOW /* 见描述 */ #define FE_DOWNWARD /* 见描述 */ #define FE_TONEARESTFROMZERO /* 见描述 */ #define FE_TONEAREST /* 见描述 */ #define FE_TOWARDZERO /* 见描述 */ #define FE_UPWARD /* 见描述 */ #define FE_DFL_ENV /* 见描述 */ #define FE_DFL_MODE /* 见描述 */ #define fenv_t /* 见描述 */ #define fexcept_t /* 见描述 */ #define femode_t /* 见描述 */ #pragma STDC FENV_ACCESS /*on-off-switch*/ #pragma STDC FENV_ROUND direction #pragma STDC FENV_ROUND FE_DYNAMIC // 函数 int feclearexcept(int excepts); int fegetexceptflag(fexcept_t* flagp, int excepts); int feraiseexcept(int excepts); int fesetexcept(int excepts); int fesetexceptflag(const fexcept_t* flagp, int excepts); int fetestexceptflag(const fexcept_t* flagp, int excepts); int fetestexcept(int excepts); int fegetmode(femode_t* modep); int fegetround(void); int fesetmode(const femode_t* modep); int fesetround(int rnd); int fegetenv(fenv_t* envp); int feholdexcept(fenv_t* envp); int fesetenv(const fenv_t* envp); int feupdateenv(const fenv_t* envp); // 仅当实现定义了 __STDC_IEC_60559_DFP__: #define FE_DEC_DOWNWARD /* 由实现定义 */ #define FE_DEC_TONEARESTFROMZERO /* 由实现定义 */ #define FE_DEC_TONEAREST /* 由实现定义 */ #define FE_DEC_TOWARDZERO /* 由实现定义 */ #define FE_DEC_UPWARD /* 由实现定义 */ #pragma STDC FENV_DEC_ROUND /*dec-direction*/ int fe_dec_getround(void); int fe_dec_setround(int rnd); // 仅当实现遵循 F.2.2 的推荐实践: #define FE_SNANS_ALWAYS_SIGNAL /* 由实现定义 */