先頭へ戻る

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

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

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

先頭へ戻る

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 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章


参考リンク


------------------------------------------------------------------------

更新履歴

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

'2018/4/22 新規作成。


------------------------------------------------------------------------

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

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

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

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー