feupdateenv
現在発生している浮動小数点例外を保存し、指定した浮動小数点環境状態を復元し、保存されている浮動小数点例外を発生させます。
構文
int feupdateenv(
const fenv_t* penv
);
パラメーター
penv
fegetenv
またはfeholdexcept
の呼び出しによって設定された浮動小数点環境を含むfenv_t
オブジェクトへのポインター。 FE_DFL_ENV
マクロを使用して、既定のスタートアップ浮動小数点環境を指定することもできます。
戻り値
すべてのアクションが正常に完了した場合は、0 を返します。 それ以外の場合は、0 以外の値を返します。
解説
feupdateenv
関数は複数のアクションを実行します。 まず、現在発生している浮動小数点例外状態フラグを自動ストレージに格納します。 次に、penv
が示す fenv_t
オブジェクトに格納されている値から現在の浮動小数点環境を設定します。 penv
がFE_DFL_ENV
されていないか、有効なfenv_t
オブジェクトを指していない場合、後続の動作は未定義です。 最後に、feupdateenv
は、ローカルに格納されている浮動小数点例外を発生させます。
この関数を使用するには、呼び出しの前に #pragma fenv_access(on)
ディレクティブを使用してアクセスを妨げる可能性のある浮動小数点の最適化をオフにする必要があります。 詳細については、fenv_access
を参照してください。
要件
機能 | C ヘッダー | C++ ヘッダー |
---|---|---|
feupdateenv |
<fenv.h> | <cfenv> |
互換性の詳細については、「 Compatibility」を参照してください。