- 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
廣告