当前位置: C语言 -- 标准库 -- <math.h> -- FP_NAN

FP_NAN宏


概要:

#define FP_NAN value //value值由具体实现定义。


描述:

该宏是浮点分类宏,表示非数值;会扩展为一个整型常量表达式。ISO/IEC 9899:2018标准定义了以下5个分类宏:

浮点类别
FP_INIFINITE 正负无穷大。
FP_NAN 非数值。
FP_NORMAL 规格化数。
FP_SUBNORMAL 次规格化数。
FP_ZERO 0

以上浮点分类宏表示不同类型的浮点值,会扩展为不同值的整型常量表达式。

实现中还可能定义其它浮点分类宏,这些宏以FP_和一个大写字母开头。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
/*宏FP_NAN范例*/

#include <math.h>
#include <stdio.h>

int main(void)
{
    switch(fpclassify(0.0/0.0))
    {
        case FP_INFINITE:
            puts("infinite");
            break;
        case FP_NAN:
            puts("NaN");
            break;
        case FP_NORMAL:
            puts("normal");
            break;
        case FP_SUBNORMAL:
            puts("subnormal");
            break;
        case FP_ZERO:
            puts("zero");
            break;
        default:
            puts("unknown category");
            break;
    }

    return 0;
}

输出:

NaN


相关内容:
FP_INFINITE 表示浮点类别无穷大的宏。
FP_NORMAL 表示浮点类别规格化数的宏。
FP_SUBNORMAL 表示浮点类别次规格化数的宏。
FP_ZERO 表示浮点类别0的宏。