C ++ feholdexcept () - C ++ Standard Library

Fungsi feholdexcept () di C ++ pertama-tama menyimpan lingkungan floating point saat ini ke objek fenv_t dan kemudian menghapus semua bendera status floating point.

Fungsi feholdexcept () didefinisikan dalam file header.

feholdexcept () prototipe

 int feholdexcept (fenv_t * envp);

Fungsi feholdexcept () menyimpan lingkungan floating point saat ini ke objek yang ditunjukkan oleh envp seperti yang dilakukan oleh fegetenv () dan membersihkan semua bendera status floating point.

Terakhir, ia menginstal mode non-stop sehingga pengecualian floating-point di masa mendatang tidak akan mengganggu eksekusi, hingga lingkungan floating-point dipulihkan dengan memanggil feupdateenv atau fesetenv.

feholdexcept () Parameter

  • envp: Arahkan ke objek berjenis fenv_t yang menyimpan status lingkungan floating point.

feholdexcept () Nilai kembali

  • Jika berhasil, fungsi feholdexcept () mengembalikan 0.
  • Jika gagal, ia mengembalikan bukan nol.

Contoh: Bagaimana fungsi feholdexcept () bekerja?

 #include #include #include #pragma STDC FENV_ACCESS ON using namespace std; void print_exceptions() ( cout << "Raised exceptions: "; if(fetestexcept(FE_ALL_EXCEPT)) ( if(fetestexcept(FE_DIVBYZERO)) cout << "FE_DIVBYZERO "; if(fetestexcept(FE_INEXACT)) cout << "FE_INEXACT "; if(fetestexcept(FE_INVALID)) cout << "FE_INVALID "; if(fetestexcept(FE_OVERFLOW)) cout << "FE_OVERFLOW "; if(fetestexcept(FE_UNDERFLOW)) cout << "FE_UNDERFLOW "; ) else cout << "None"; cout << endl; ) int main(void) ( fenv_t envp; /* raise certain exceptions */ feraiseexcept(FE_INVALID|FE_DIVBYZERO); print_exceptions(); /* saves and clears current exceptions */ feholdexcept(&envp); print_exceptions(); /* restores saved exceptions */ feupdateenv(&envp); print_exceptions(); return 0; )

Saat Anda menjalankan program, hasilnya adalah:

 Pengecualian yang ditingkatkan: FE_DIVBYZERO FE_INVALID Pengecualian yang ditingkatkan: Tidak ada Pengecualian yang ditingkatkan: FE_DIVBYZERO FE_INVALID

Artikel yang menarik...