NAN(3) | FreeBSD Library Functions Manual | NAN(3) |
名称
nan, nanf, nanl — quiet (静かな) NaNライブラリ
Math Library (libm, -lm)書式
#include < math.h> double
nan( const char *s);
float
nanf( const char *s);
long double
nanl( const char *s);
解説
NAN マクロは、quiet (静かな) NaN (Not A Number) に拡張します。訳注: quiet NaN は、演算過程で伝播していく以外に何も例外などを生成しません。同様に、 nan(), nanf() と nanl() 関数のそれぞれは、無効の例外を上げないで、 quiet NaN 値を生成します。引数 s は、負でない整数の空の文字列か、または 16 進表現のいずれかを指すべきです (例えば、"0x1234")。後者の場合に、整数は、時々、特定の NaN が生成された理由に関するマシン特有の情報を格納する、NaN の表現でいくつかの空きビットにエンコードされます。 float 変数のために利用可能な 22 ビット、 double 変数のために 51 ビット、および long double のために、すくなくとも 51 ビットがあります。 s が不適切に書式化されるか、または大き過ぎる整数を表すなら、返される quiet NaN の特定のエンコードは、不確定です。互換性
空でない文字列でこれらの関数を呼び出すことは、移植性がありません。別のオペレーティングシステムは、文字列を異なった NaN エンコーディングに変換します、その上に、与えられた NaN エンコーディングの意味は、マシンアーキテクチャに渡って異なります。どのような文字列が使用したらよいかをよく知っている特定のプラットフォームの内容を理解しているなら、これらの関数の必要がないので、とにかく、それらを使用しないでください。代わりに NAN マクロを使用してください。規格
nan(), nanf() と nanl() 関数と NAN マクロは、 ISO/IEC 9899:1999 (“ISO C99”) に適合しています。December 16, 2007 | FreeBSD |