标准库标头 <fenv.h> (C99)

来自cppreference.com
< c‎ | header


此标头是浮点数环境库的一部分。

目录

[编辑] 类型

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

[编辑] 函数

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

[编辑]

浮点数异常
(宏常量) [编辑]
浮点数舍入方向
(宏常量) [编辑]
默认浮点数环境
(宏常量) [编辑]

[编辑] 概要

#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 /* 由实现定义 */