ReferenceC探究是如何一步步

北京看皮肤科的医院 http://m.39.net/pf/a_4439528.html

宏/函数

cmathctgmath

fpclassify

C99

fpclassify(x)

C++11

函数

intfpclassify(floatx);

intfpclassify(doublex);

intfpclassify(longdoublex);

分类浮点值

返回一个int类型的值,该值与分类宏常量之一匹配,取决于x的值:

value  description

FP_INFINITE  Positiveornegativeinfinity(overflow)(正无穷或负无穷(上溢))

FP_NAN  Not-A-Number(不是一个数)

FP_ZERO  Valueofzero(0值)

FP_SUBNORMAL  Sub-normalvalue(underflow)(低于正常值(下溢))

FP_NORMAL  Normalvalue(noneoftheabove)(正常值(不是上面的任何一个))

注意,每个值都属于一个类别:0不是一个正常值。

这些int类型的宏常量定义在头文件cmath(math.h)中。

C99

在C语言中,这是作为宏实现的,但x的类型应该是float、double或longdouble。

C++11

在C++中,它是通过每个浮点类型(floating-pointtype)的函数重载来实现的。

参数

x

分类的值。

返回值

以下int值之一:FP_INFINITE,FP_NAN,FP_ZERO,FP_SUBNORMAL或FP_NORMAL。

用例

/*fpclassifyexample*/

#includestdio.h/*printf*/

#includemath.h/*fpclassify,signbit,FP_**/

intmain()

{

doubled=1.0/0.0;

switch(fpclassify(d)){

caseFP_INFINITE:printf("infinite");break;

caseFP_NAN:printf("NaN");break;

caseFP_ZERO:printf("zero");break;

caseFP_SUBNORMAL:printf("subnormal");break;

caseFP_NORMAL:printf("normal");break;

}

if(signbit(d))printf("negative\n");

elseprintf("positiveorunsigned\n");

return0;

}

输出:

————————————————

版权声明:本文为CSDN博主「weixin_」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:


转载请注明:http://www.aierlanlan.com/grrz/2906.html