プログラミング言語 C の新機能 Part XLVIII: math.h: 型: float_t, double_t
(2000/03/03 [金])
今回、math.h の内容がかなり power up されています。すごいボリュームで書くのが嫌です。新しくマクロ、typedef、関数が追加されたのに加え、ほとんどの関数には double 型、float 型、long double 型を引数として受け取り、結果をその型として返す関数が追加されています。例えば、従来の sin 関数は double sin(double x); しか存在しなかったのが、今回からは、これに加え float sinf(float x);, long double sinl(long double x); のように float 型の関数 xxxxf、long double 型の関数 xxxxl が存在します。とりあえず、今回は追加された二つの typedef について説明します。
追加された二つの typedef とは float_t と double_t です。これらの実際の型は float.h で定義されている前回説明した FLT_EVAL_METHOD の値により変化します。具体的には次の通りです。ただし float.h が自動的に include されるわけではないので、以下はそのまま使えるわけではありません。
追加された二つの typedef とは float_t と double_t です。これらの実際の型は float.h で定義されている前回説明した FLT_EVAL_METHOD の値により変化します。具体的には次の通りです。ただし float.h が自動的に include されるわけではないので、以下はそのまま使えるわけではありません。
#if FLT_EVAL_METHOD==0 typedef float float_t; typedef double double_t; #elif FLT_EVAL_METHOD==1 typedef double float_t; typedef double double_t; #elif FLT_EVAL_METHOD==2 typedef long double float_t; typedef long double double_t; #else float_t, double_t は実装依存の型 #endif |
by seclan