- C 標準庫
- C 庫 - 首頁
- C 庫 - <assert.h>
- C 庫 - <complex.h>
- C 庫 - <ctype.h>
- C 庫 - <errno.h>
- C 庫 - <fenv.h>
- C 庫 - <float.h>
- C 庫 - <inttypes.h>
- C 庫 - <iso646.h>
- C 庫 - <limits.h>
- C 庫 - <locale.h>
- C 庫 - <math.h>
- C 庫 - <setjmp.h>
- C 庫 - <signal.h>
- C 庫 - <stdalign.h>
- C 庫 - <stdarg.h>
- C 庫 - <stdbool.h>
- C 庫 - <stddef.h>
- C 庫 - <stdio.h>
- C 庫 - <stdlib.h>
- C 庫 - <string.h>
- C 庫 - <tgmath.h>
- C 庫 - <time.h>
- C 庫 - <wctype.h>
- C 標準庫資源
- C 庫 - 快速指南
- C 庫 - 有用資源
- C 庫 - 討論
- C 程式設計資源
- C 程式設計 - 教程
- C - 有用資源
C 庫 - feholdexcept() 函式
C 的fenv 庫 feholdexcept() 函式用於執行可能引發異常的浮點運算,而不會中斷程式的流程。
在程式編譯成功後,我們可以恢復原始環境以恢復異常。
語法
以下是 feholdexcept() 函式的 C 庫語法。
feholdexcept(fenv_t *envp);
引數
- 該函式接受一個指向 fenv_t 物件的指標,在清除標誌(浮點運算)之前,當前環境將儲存在此物件中。
返回值
此函式返回一個整數值,其含義如下:
零,如果程式正常執行。
非零,如果無法設定環境。
示例 1
feholdexcept()
#include <stdio.h>
#include <fenv.h>
int main() {
fenv_t env;
// Save and clear all exceptions
feholdexcept(&env);
// Restore the saved exceptions
fesetenv(&env);
printf("Exceptions restored.\n");
return 0;
}
輸出
上述程式碼產生以下結果:
Exceptions restored.
示例 2
下面的程式儲存並清除異常以執行運算,而不會因除以零而停止,然後檢查是否發生了此類異常。
#include <stdio.h>
#include <fenv.h>
int main() {
fenv_t env;
// Save and clear exceptions
feholdexcept(&env);
// Perform operations that may raise exception
if (fetestexcept(FE_DIVBYZERO)) {
printf("Division by zero occurred, but calculations continued.\n");
}
// Restore the environment to handle exceptions properly
fesetenv(&env);
return 0;
}
輸出
執行上述程式碼後,我們將獲得以下結果:
=== Code Execution Successful ===
c_library_fenv_h.htm
廣告