C ++ feraiseexcept () - C ++ Standart Kitaplığı

C ++ 'daki feraiseexcept () işlevi, bağımsız değişken tarafından belirtilen tüm kayan nokta istisnalarını yükseltmeye çalışır.

Feraiseexcept () işlevi başlık dosyasında tanımlanmıştır.

feraiseexcept () prototipi

 int feraiseexcept (int excepts);

Ortaya çıkarılacak kayan nokta istisnaları, bağımsız değişken istisnalarında listelenmiştir.

Ayrıca, programınızın ortaya çıkan istisnaları test etmek için Kayan nokta ortamına erişmesini sağlayacak olan FENV_ACCESS'i etkinleştirmelisiniz .

feraiseexcept () Parametreler

  • istisnalar: Yükseltilecek istisna bayraklarının bit maskesi listesi.
Bit maskesi makroları kabul etti
Makro Tür Açıklama
FE_DIVBYZERO Kutup hatası Sıfıra bölüm
FE_INEXACT Hatasız (1.0 / 3.0) gibi kesin sonuçlar değil
FE_INVALID Alan hatası Kullanılan en az bir argüman, işlevin tanımlanmadığı bir değerdir
FE_OVERFLOW Taşma aralığı hatası Sonuç, dönüş türüyle temsil edilemeyecek kadar büyüklükte
FE_UNDERFLOW Alt akış aralığı hatası Sonuç, dönüş türüyle temsil edilemeyecek kadar küçüktür
FE_ALL_EXCEPT Tüm istisnalar Uygulama tarafından desteklenen tüm istisnalar

feraiseexcept () Dönüş değeri

  • Feraiseexcept () işlevi, istisnalar tarafından belirtilen tüm istisnalar ortaya çıkarsa sıfır değeri döndürür.
  • Aksi takdirde sıfır olmayan bir değer döndürür.

Örnek: feraiseexcept () işlevi nasıl çalışır?

 #include #include #pragma STDC FENV_ACCESS ON using namespace std; int main() ( int retVal; feclearexcept(FE_ALL_EXCEPT); retVal = feraiseexcept(FE_OVERFLOW | FE_INVALID); if (retVal == 0) cout << "Successfully raised FE_OVERFLOW and FE_INVALID" << endl; else cout << "Raising FE_OVERFLOW and FE_INVALID failed" << endl; return 0; )

Programı çalıştırdığınızda, çıktı:

 FE_OVERFLOW ve FE_INVALID başarıyla yükseltildi

Ilginç makaleler...