C語言fenv頭文件(fenv.h)中feholdexcept函數的用法及代碼示例。
用法:
int feholdexcept (fenv_t* envp);
保留浮點異常
這個不間斷模式防止浮點異常引發程序時停止程序的正常運行(帶有陷阱或異常終止)。
調用此函數的程序應確保編譯指示FENV_ACCESS已啟用該調用。
參數
- envp
- 指向一個指針fenv_t存儲浮點環境狀態的對象。
返回值
零,如果函數成功完成,包括設置浮點環境馬不停蹄模式。否則為非零值。
示例
/* feholdexcept/feupdateenv example */
#include <stdio.h> /* printf, puts */
#include <fenv.h> /* feholdexcept, feclearexcept, fetestexcept, feupdateenv, FE_* */
#include <math.h> /* log */
#pragma STDC FENV_ACCESS on
double log_zerook (double x) {
fenv_t fe;
feholdexcept(&fe);
x=log(x);
feclearexcept (FE_OVERFLOW|FE_DIVBYZERO);
feupdateenv(&fe);
return x;
}
int main ()
{
feclearexcept (FE_ALL_EXCEPT);
printf ("log(0.0): %f\n", log_zerook(0.0));
if (!fetestexcept(FE_ALL_EXCEPT))
puts ("no exceptions raised");
return 0;
}
可能的輸出:
log(0.0): -inf no exceptions raised |
相關用法
- C語言 feclearexcept用法及代碼示例
- C語言 feraiseexcept用法及代碼示例
- C語言 fegetround用法及代碼示例
- C語言 fesetround用法及代碼示例
- C語言 feupdateenv用法及代碼示例
- C語言 fetestexcept用法及代碼示例
注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C feholdexcept function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。