2013-05-31 77 views

回答

5

您需要一個支持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,僅僅是按位或在它上面的所有宏。

+0

[''(http://pubs.opengroup.org/onlinepubs/009604599/basedefs/fenv.h.html)實際上是(也)POSIX,所以應該是跨Unix系統的可移植性。 – rubenvb

+0

非常感謝。你會給我一些關於函數的用例嗎? – Charles

+0

@rubenvb:謝謝,更新。 – jxh

相關問題