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

先頭へ戻る

FENV_ACCESS

概要 浮動小数点環境へのアクセスを行うことをコンパイラへ伝える標準プラグマ
ヘッダ fenv.h
詳細 プログラムが、浮動小数点環境へのアクセスを行うことをコンパイラへ伝えるための標準プラグマである。「#pragma STDC FENV_ACCESS ON」あるいは「#pragma STDC FENV_ACCESS OFF」のように使用し、状態を ON か OFF のいずれかにする。これ以外の状態はない。
プログラムが、浮動小数点環境へアクセスしたり、規定状態以外の浮動小数点制御モードで実行されたりする場合に、FENV_ACCESS が OFF であると、その動作は未定義である。
FENV_ACCESS 標準プラグマの効力は、翻訳単位やブロックの終わり、あるいはほかの FENV_ACCESS 標準プラグマが登場するまで続く。効力が切れた後は、元の状態に戻る。
注意 FENV_ACCESS の初期状態が ON なのか OFF なのかは処理系定義である。
VisualStudio 2015/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" );
    }

    return 0;
}

実行結果

FE_DIVBYZERO
関連
解説章 第48章


参考リンク

更新履歴

'2018/4/22 新規作成。





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

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

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

Programming Place Plus のトップページへ


このエントリーをはてなブックマークに追加
rss1.0 取得ボタン RSS