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

NAN宏


概要:

#define NAN value //value值由实现定义。


描述:

当且仅当实现支持float类型的安静非数值(quiet NaNs)时,宏NaN才会被定义。该宏会扩展为float类型的常量表达式,表示安静非数值。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
/*宏NAN范例*/

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

int main(void)
{
    float a = NAN;
    float b = NAN;

    if(a!=b)
        puts("a!=b");
    else
        puts("a==b");

    return 0;
}


输出:

a!=b

根据ISO/IEC 9899:2018标准第7.12.14 Comparison macros节,对于一个NaN和一个数值,或者对于两个NaN,只有无序关系为真。


相关内容:
INFINITY 表示float类型无穷大的宏。