NAN
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <math.h> で定義
|
||
#define NAN /*implementation defined*/ |
(C99以上) | |
マクロ NAN は quiet NaN (QNaN) の値に評価される float 型の定数式に展開されます。 処理系が QNaN をサポートしない場合、このマクロ定数は定義されません。
NaN を表示するために使用される形式は処理系定義です。
ノート
ペイロードと符号ビットが異なる多数の NaN 値が存在します。 このマクロ NAN によって生成される NaN のペイロードと符号ビットの内容は処理系定義です。
例
NaN の表示に使用される形式と IEEE フォーマットを示します。
Run this code
#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);
}
出力例:
NAN: nan 7ff8000000000000
参考文献
- 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)
関連項目
(C99)(C99)(C99) |
NaN (非数) を返します (関数) |
(C99) |
指定された値が NaN かどうか調べます (関数マクロ) |
NAN の C++リファレンス
| |