
- 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 庫 - feupdateenv() 函式
C 的fenv庫feupdateenv()函式用於恢復浮點環境。它還處理在使用feholdexcept儲存的環境發生異常期間的異常。feholdexcept 可以恢復原始環境以恢復異常。
語法
以下是feupdateenv()函式的 C 庫語法 -
feupdateenv(const fenv_t *envp);
引數
此函式僅接受一個引數 -
- 它接受一個指向 fenv_t 物件的指標,該物件引發異常處理程式。
返回值
如果程式編譯成功,則返回整數形式的值 0。此外,當無法引發異常時,它會返回非零值。
示例 1
以下 C 庫程式顯示了feupdateenv()函式的使用。
#include <stdio.h> #include <fenv.h> int main() { fenv_t env; // Save and clear exceptions feholdexcept(&env); // Restore the environment and raise exceptions feupdateenv(&env); printf("Environment restored, exceptions handled.\n"); return 0; }
輸出
以上程式碼產生以下結果 -
Environment restored, exceptions handled.
示例 2
要儲存和清除異常,我們可以執行除以零的任務,該任務恢復環境並檢查是否發生了異常。
#include <stdio.h> #include <fenv.h> int main() { fenv_t env; // Save and clear exceptions feholdexcept(&env); // Division by zero double result = 1.0 / 0.0; // Restore the environment and handle exceptions feupdateenv(&env); if (fetestexcept(FE_DIVBYZERO)) { printf("Division by zero occurred and handled.\n"); } return 0; }
輸出
執行以上程式碼後,我們得到以下結果 -
Division by zero occurred and handled.
示例 3
要恢復原始環境,它執行引發和溢位異常的任務,以及執行我們在示例 2 中執行的相同程式(儲存和清除異常)。
#include <stdio.h> #include <fenv.h> int main() { fenv_t env1, env2; // Save and clear exceptions feholdexcept(&env1); // Raise an overflow exception feraiseexcept(FE_OVERFLOW); // Save and clear exceptions again feholdexcept(&env2); // Restore the original environment feupdateenv(&env1); printf("Original environment restored.\n"); return 0; }
輸出
執行以上程式碼後,我們得到以下結果 -
Original environment restored.
c_library_fenv_h.htm
廣告