最近,我正在做一個關於移植的工作。 我遇到過這樣的問題: 有些Windows API,比如_clearfp(),_statusfp()等等,那我在linux下找不到相應的函數。在Linux中,是否存在類似於_clearfp()和_statusfp()的函數?
所以我在這裏尋求幫助。
最近,我正在做一個關於移植的工作。 我遇到過這樣的問題: 有些Windows API,比如_clearfp(),_statusfp()等等,那我在linux下找不到相應的函數。在Linux中,是否存在類似於_clearfp()和_statusfp()的函數?
所以我在這裏尋求幫助。
您需要一個支持C99標準附錄F的POSIX系統或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
,僅僅是按位或在它上面的所有宏。
這些功能做什麼?請解釋。 – Claudio
_clearfp():獲取並清除浮點狀態字。 _statusfp:獲取浮點狀態字。 – Charles