double nan(const char *tagp);
float nanf(const char *tagp);
long double nanl(const char *tagp);
-std=c99 でコンパイルし、-lm でリンクする。
glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):
nan(), nanf(), nanl(): _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE; or cc -std=c99
nan(char-sequence) を呼び出すのは、 strtod (NAN(char-sequence),NULL) と等価である。 同様に、 nanf() や nanl() を呼び出すのは、 strtof() や strtold() を呼ぶのと同じである。
引き数 tagp の使い方は規定されていない。 IEEE 754 準拠のシステムでは、NaN にも複数の表現が存在し、 tagp はその選択に使用される。 他のシステムでは、何の意味もないかもしれない。