4

最近,我正在做关于移植的工作。我遇到了这样一个问题:一些Windows API,如_clearfp()、_statusfp()等,在Linux中找不到对应的函数。

所以我在这里寻求帮助。

4

1 回答 1

6

您将需要一个 POSIX 系统或支持 C99 标准附件 F 的 C99 编译器。__STDC_IEC_559__您可以通过检查是否定义了宏来测试是否支持附件 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只是它上面所有宏的按位或。

于 2013-05-31T08:32:39.853 回答