NAN

NAN

Defined in header <math.h>
#define NAN /*implementation defined*/
(since C99)

The macro NAN expands to constant expression of type float which evaluates to a quiet not-a-number (QNaN) value. If the implementation does not support QNaNs, this macro constant is not defined.

The style used to print a NaN is implementation defined.

Notes

There are many different NaN values, differentiated by their payloads and their sign bits. The contents of the payload and the sign bit of the NaN generated by the macro NAN are implementation-defined.

Example

Show style used to print a NaN and IEEE format.

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

Possible output:

NAN:   nan 7ff8000000000000

References

  • C11 standard (ISO/IEC 9899:2011):
    • 7.12/5 NAN (p: 232)
    • F.10/11/13 NAN (p: 518)
  • C99 standard (ISO/IEC 9899:1999):
    • 7.12/5 NAN (p: 213)
    • F.9/11/13 NAN (p: 455)

See also

(C99)(C99)(C99)
returns a NaN (not-a-number)
(function)
(C99)
checks if the given number is NaN
(function)
C++ documentation for NAN

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/numeric/math/NAN.2

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部