FENV_ACCESS | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


FENV_ACCESS

概要

浮動小数点環境へのアクセスを行うことを処理系へ伝える標準プラグマ

ヘッダ

fenv.h

詳細

プログラムが、浮動小数点環境へのアクセスを行うことを処理系へ伝えるための標準プラグマである。「#pragma STDC FENV_ACCESS ON」あるいは「#pragma STDC FENV_ACCESS OFF」のように使用し、状態を ON か OFF のいずれかにする。これ以外の状態はない。

プログラムが、浮動小数点環境へアクセスしたり、規定状態以外の浮動小数点制御モードで実行されたりする場合に、FENV_ACCESS が OFF であると、その動作は未定義である。

FENV_ACCESS 標準プラグマの効力は、翻訳単位(第23章)やブロックの終わり、あるいはほかの FENV_ACCESS 標準プラグマが登場するまで続く。効力が切れた後は、元の状態に戻る。

注意

FENV_ACCESS の初期状態が ON なのか OFF なのかは処理系定義である。
Visual Studio 2017 は標準プラグマをサポートしておらず、FENV_ACCESS もない。代わりに、fenv_accessプラグマを使う。

使用例

#include <fenv.h>
#include <stdio.h>

#if defined(_MSC_VER)
#pragma fenv_access (on)
#else
#pragma STDC FENV_ACCESS ON
#endif

int main(void)
{
    feclearexcept(FE_ALL_EXCEPT);
    double x = 2.0 / 0.0;
    if (fetestexcept(FE_DIVBYZERO)) {
        puts("FE_DIVBYZERO");
    }
}

実行結果

FE_DIVBYZERO

関連

解説章

第48章


参考リンク


更新履歴

’2019/2/12 VisualStudio 2015 の対応終了。

’2018/4/22 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る