命名空间
变体
操作

NAN

来自 cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
类型
(C99)(C99)    

(C99)(C99)    

函数
基本运算
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大值/最小值操作
(C99)
(C23)    
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)
(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)
(C99)
(C23)
(C23)
三角函数和双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
误差函数和伽玛函数
(C99)
(C99)
(C99)
(C99)
最近整数浮点运算
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点操作函数
(C99)(C99)
(C99)(C23)
(C99)
缩窄操作
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子和量子指数函数
十进制重新编码函数
全序和有效载荷函数
分类
(C99)
(C99)
(C99)
(C23)
宏常量
特殊浮点值
NANDEC_NAN
(C99)(C23)
参数和返回值
(C99)(C99)(C99)(C99)(C99)    
错误处理
(C99)    

 
在头文件 <math.h> 中定义
#define NAN /*实现定义*/
(自 C99 起)

NAN 展开为类型 float 的常量表达式,它计算为静默非数字 (QNaN) 值。如果实现不支持 QNaN,则此宏常量未定义。

用于打印 NaN 的样式是实现定义的。

内容

[编辑] 注释

存在许多不同的 NaN 值,它们通过其有效载荷和符号位来区分。宏 NAN 生成的 NaN 的有效载荷内容和符号位是实现定义的。

[编辑] 示例

显示用于打印 NaN 和 IEEE 格式的样式。

#include <inttypes.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
 
int main(void)
{
    const double f = NAN;
    uint64_t fn;
    memcpy(&fn, &f, sizeof f);
    printf("NAN:   %f %" PRIx64 "\n", f, fn);
}

可能的输出

NAN:   nan 7ff8000000000000

[编辑] 参考

  • C23 标准 (ISO/IEC 9899:2024)
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.12/5 NAN (p: 232)
  • F.10/11/13 NAN (p: 518)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.12/5 NAN (p: 213)
  • F.9/11/13 NAN (p: 455)

[编辑] 另请参见

(C99)(C99)(C99)
返回 NaN(非数字)
(函数) [编辑]
(C99)
检查给定数字是否为 NaN
(函数宏) [编辑]
C++ 文档 用于 NAN