NAN

< c‎ | numeric‎ | math


在标头 <math.h> 定义
#define NAN /* 由实现定义 */
(C99 起)

NAN 展开成求值为安静非数(QNaN)的 float 类型常量表达式。若实现不支持 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 (第 TBD 页)
  • F.10/11/13 NAN (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.12/5 NAN (第 TBD 页)
  • F.10/11/13 NAN (第 TBD 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.12/5 NAN (第 232 页)
  • F.10/11/13 NAN (第 518 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.12/5 NAN (第 213 页)
  • F.9/11/13 NAN (第 455 页)

参阅

(C99)(C99)(C99)
返回 NaN(非数)
(函数)
(C99)
检查给定数是否为 NaN
(宏函数)