seclan のほえほえルーム

| |

・プログラミング言語 C の新機能 Part LV: fenv.h: 浮動小数点環境: プラグマ/型/マクロ (2000/03/15 [])
 C99 では新たに fenv.h を提供しています。このヘッダは、今まで各環境で扱いがバラバラであった浮動小数点演算における例外と丸め制御を抽象化し扱うためのものです。そのため新たなプラグマ、型、マクロ、関数が定義されています。
 まず fenv.h の include で利用可能になるプラグマとしては以前紹介した
  #pragma STDC FENV_ACCESS on-off-switch
があります。
 今回は、型とマクロ、そして次回は関数について示します。

fenv.h 型
型名解説
fenv_t浮動小数点環境全体を表す型
fexcept_t浮動小数点例外フラグ群を表す型。fenv.h で定義される例外フラグの値が入るとは限らない。


fenv.h マクロ
マクロ名解説
例外フラグ
FE_DEVBYZERO
FE_INEXACT
FE_INVALID
FE_OVERFLOW
FE_UNDERFLOW
 fenv.h の中の関数で使用される例外の種類をあらわすマクロ。その例外が実装されているときだけ対応するマクロが定義される。各マクロの値は整数定数(式)に展開される値であり、各値それぞれを bit or できる値。また、FE_UPPERCASESTRING のように、FE_ の後に大文字の文字列が続くマクロは、実装依存の例外をあらわしている。UPPERCASESTRING の部分は、実際は実装依存の例外名に入れ替わる。
FE_ALL_EXCEPT  前記の実装依存の例外フラグを含めた全例外フラグの値をすべて or した値。
丸めフラグ
FE_UPWARD
FE_DOWNWARD
FE_TOWARDZERO
FE_TONEAREST
 fegetroun/fesetround 関数で使用される値で、それぞれの丸めモードがその環境で実装されているときだけ対応するマクロが定義される。各マクロは数定数(式)に展開される。FLT_ROUNDS で利用される値と兼用できる。また、FE_UPPERCASESTRING のように、FE_ の後に大文字の文字列が続くマクロは、実装依存の丸めをあらわしている。UPPERCASESTRING の部分は、実際は実装依存の丸め名に入れ替わる。
環境
FE_DFL_ENV  型 const fenv_t * を持つ、デフォルト浮動小数点環境。cont fenv_t * の型を持つ名前 FE_xxxx は実装依存の環境名をあらわす。xxxx は対応する環境をあらわす名前である。



by seclan


| |

 

配信

8.06 msec