最近は移植に関する仕事をしています。_clearfp()、_statusfp() などの一部の Windows API で、対応する関数が Linux で見つからないという問題に遭遇しました。
だから私は助けを求めるためにここにいます。
最近は移植に関する仕事をしています。_clearfp()、_statusfp() などの一部の Windows API で、対応する関数が Linux で見つからないという問題に遭遇しました。
だから私は助けを求めるためにここにいます。
POSIX システム、または C99 標準の Annex F をサポートする C99 コンパイラが必要です。マクロ__STDC_IEC_559__
が定義されているかどうかを確認することで、Annex F がサポートされているかどうかをテストできます。関連する関数は にあります<fenv.h>
。
int feclearexcept(int excepts); // clears exceptions (returns 0 on success)
int fetestexcept(int excepts); // returns exceptions that are set
excepts
として渡され、 によって返される例外はfetestexcept
、次のマクロに対してテストできるビットマスクです。
FE_DIVBYZERO
FE_INEXACT
FE_INVALID
FE_OVERFLOW
FE_UNDERFLOW
FE_ALL_EXCEPT
最後のマクロ はFE_ALL_EXCEPT
、その上にあるすべてのマクロのビットごとの論理和です。