Home C&C++函数库 c++ 语法 程序源码 Linux C库

宏常量-异常


FE_DIVBYZERO

宏   <cfenv>
int

极点错误异常
此宏扩展为int类型的值,用于标识支持错误引发的浮点异常。

极点错误发生在操作的结果是渐近无穷大的时候,比如除以零或log(0.0)。

它被定义为一个精确为二次幂的值,允许多个浮点异常组合(使用按位OR操作符:|)为单个值,见下面异常表.
某些库实现可能支持更多的浮点异常值(其对应的宏也以FE_开头)。

C99:
在<fenv.h>中,库可以只定义它们支持的下面异常表的宏值(其他的可能不定义)。
如果math_errhandling具有MATH_ERREXCEPT设置,则始终定义FE_DIVBYZERO。

C++11:
至少上面所有的宏值都在<cfenv>中定义(即使实现不支持)。

FE_INEXACT

宏   <cfenv>
int

不精确的结果异常
这个宏扩展为一个int类型的值,用于标识在不精确的结果上引发的浮点异常。

当操作的返回类型不能准确地表示结果时(例如大多数实现上的1.0/3.0或sqrt(2.0)), 或者由于其他原因函数不能产生准确的结果时,将引发不精确异常。

它被定义为一个精确为二次幂的值,允许多个浮点异常组合(使用按位OR操作符:|)为单个值,见下面异常表.

某些库实现可能支持更多的浮点异常值(其对应的宏也以FE_开头)。

C99:
在<fenv.h>中,库可以只定义它们支持的下面异常表的宏值(其他的可能不定义)。

C++11:
至少下面所有的宏值都在<cfenv>中定义(即使实现不支持)。

FE_INVALID

宏   <cfenv>
int

无效的参数异常
此宏扩展为int类型的值,用于标识在无效参数上引发的浮点异常。

将引发无效的参数异常,以表明传递给函数的参数超出了其域(即,函数不是为该值定义的),例如sqrt(-1.0)。

引发此异常的函数返回的值是未指定的.

它被定义为一个精确为二次幂的值,允许多个浮点异常组合(使用按位OR操作符:|)为单个值,见下面异常表.
某些库实现可能支持更多的浮点异常值(其对应的宏也以FE_开头)。

C99:
在<fenv.h>中,库可以只定义它们支持的下面异常表的宏值(其他的可能不定义)。
如果math_errhandling具有MATH_ERREXCEPT设置,则始终定义FE_INVALID。

C++11:
至少下面所有的宏值都在<cfenv>中定义(即使实现不支持)。

FE_OVERFLOW

宏   <cfenv>
int

溢出范围错误异常
此宏扩展为int类型的值,用于标识溢出范围错误引发的浮点异常。

当操作的结果不能表示为其返回类型的值时,就会发生溢出范围错误,因为其值太大(带有正号或负号)。

在默认取整模式生效时溢出的操作将返回正的或负的HUGE_VAL(或HUGE_VALF或HUGE_VALL)。

它被定义为一个精确为二次幂的值,允许多个浮点异常组合(使用按位OR操作符:|)为单个值,见下面异常表.

某些库实现可能支持更多的浮点异常值(其对应的宏也以FE_开头)。

C99:
在<fenv.h>中,库可以只定义它们支持的下面异常表的宏值(其他的可能不定义)。
如果math_errhandling具有MATH_ERREXCEPT设置,则始终定义FE_OVERFLOW 。

C++11:
至少下面所有的宏值都在<cfenv>中定义(即使实现不支持)。

FE_UNDERFLOW

宏   <cfenv>
int

下溢范围错误异常
此宏扩展为int类型的值,用于标识下溢范围错误引发的浮点异常。

当操作的结果不能表示为其返回类型的值,因为其值太小(带有正号或负号)时,就会发生下溢范围错误。

溢出的操作返回一个未指定的值,其大小不大于最小的标准化正数。

操作是否引发此异常是由实现定义的:不需要任何操作来引发此异常,但实现可以选择这样做。

它被定义为一个精确为二次幂的值,允许多个浮点异常组合(使用按位OR操作符:|)为单个值,见下面异常表.

某些库实现可能支持更多的浮点异常值(其对应的宏也以FE_开头)。

C99:
在<fenv.h>中,库可以只定义它们支持的下面异常表的宏值(其他的可能不定义)。

C++11:
至少下面所有的宏值都在<cfenv>中定义(即使实现不支持)。

FE_ALL_EXCEPT

宏   <cfenv>
int

全部异常
这个宏扩展为一个int类型的值,该值组合了<cfenv>中定义的所有可能的浮点异常的值(按位或)。

如果实现不支持浮点异常,则将此宏定义为0(零)。

它用于一个可能的浮点异常位掩码作为参数之一的函数: feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflagfetestexcept


异常表:
宏值 说明
FE_DIVBYZERO 极点错误: 如 :零做除数,或其他一些渐近无限的结果(有限的参数)。
FE_INEXACT 不精确:结果不精确。
FE_INVALID 域错误:至少有一个参数是函数未定义的值。
FE_OVERFLOW 溢出范围错误:结果的值太大,无法用返回类型的值表示。
FE_UNDERFLOW 下溢出范围误差:结果的值太小,不能用返回类型的值表示。
FE_ALL_EXCEPT 所有异常(选择实现支持的所有异常)。


联系我们 免责声明 关于CandCplus 网站地图