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

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

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


math_errhandling

概要

数学関数でエラーが発生したときの動作を定義する

ヘッダ

math.h

形式

#define math_errhandling (MATH_ERRNO | MATH_ERREXCEPT)

置換結果

MATH_ERRNOMATH_ERREXCEPT、MATH_ERRNO | MATH_ERREXCEPT のいずれか。いずれにしても、int型の値である。

詳細

数学関数がエラーを発生させたとき、それをどのように伝えるかを定義している。

定義域エラーや値域エラーが発生したときに、「math_errhandling & MATH_ERRNO」が 0以外になる場合は、errno に適切なエラーコードを設定し、「math_errhandling & MATH_ERREXCEPT」が 0以外になる場合は、浮動小数点例外を発生させる。2つは同時に満たされることもある。値域エラーが浮動小数点演算のアンダーフローによって起こった場合の動作は処理系定義である。

発生する浮動小数点例外の種類は、定義域エラーでは FE_INVALID、数学的な結果が有限の場合のオーバーフローでは FE_OVERFLOW、無限の場合のオーバーフローでは FE_DIVBYZERO、アンダーフローでは FE_UNDERFLOW である。

処理系ごとに置換結果は異なり、プログラムが実行されている間、値が変化することはない。また、マクロではない実装もあり得るが、特に気にする必要はない。

注意

使用例

#include <math.h>
#include <stdio.h>

int main(void)
{
    printf("%d\n", math_errhandling & MATH_ERRNO);
    printf("%d\n", math_errhandling & MATH_ERREXCEPT);
}

実行結果

1
2

関連

解説章

第48章


参考リンク


更新履歴

’2018/4/21 新規作成。



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

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

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

Programming Place Plus のトップページへ



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