C ++ feholdexcept () - Perpustakaan Standard C ++

Fungsi feholdexcept () dalam C ++ terlebih dahulu menyimpan persekitaran titik terapung semasa ke objek fenv_t dan kemudian membersihkan semua bendera status titik terapung.

Fungsi feholdexcept () didefinisikan dalam fail header.

prototaip feholdexcept ()

 int feholdexcept (fenv_t * envp);

Fungsi feholdexcept () menyimpan persekitaran titik terapung semasa ke objek yang ditunjukkan oleh envp seperti yang dilakukan oleh fegetenv () dan membersihkan semua bendera status titik terapung.

Akhirnya ia memasang mod tanpa henti sehingga pengecualian titik terapung di masa depan tidak akan mengganggu pelaksanaan, sehingga persekitaran titik terapung dipulihkan dengan memanggil feupdateenv atau fesetenv.

feholdexcept () Parameter

  • envp: Penunjuk ke objek jenis fenv_t yang menyimpan status persekitaran titik terapung.

feholdexcept () Nilai pulangan

  • Pada kejayaan, fungsi feholdexcept () mengembalikan 0.
  • Sekiranya gagal, ia mengembalikan bukan sifar.

Contoh: Bagaimana fungsi feholdexcept () berfungsi?

 #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; )

Semasa anda menjalankan program, outputnya adalah:

 Pengecualian yang dinaikkan: FE_DIVBYZERO FE_INVALID Pengecualian yang meningkat: Tiada Pengecualian yang dinaikkan: FE_DIVBYZERO FE_INVALID

Artikel menarik...