seclan のほえほえルーム

| |

・プログラミング言語 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 されるわけではないので、以下はそのまま使えるわけではありません。


#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


| |

 

配信

4.14 msec