C ++ feraiseexcept () - C ++ Τυπική βιβλιοθήκη

Η συνάρτηση feraiseexcept () στο C ++ επιχειρεί να αυξήσει όλες τις εξαιρέσεις κινητού σημείου που καθορίζονται από το όρισμα.

Η συνάρτηση feraiseexcept () ορίζεται στο αρχείο κεφαλίδας.

πρωτότυπο feraiseexcept ()

 int feraiseexcept (int εκτός)

Οι εξαιρέσεις κυμαινόμενου σημείου που θα εγγραφούν παρατίθενται στο όρισμα εξαιρέσεις.

Επίσης, θα πρέπει να ενεργοποιήσετε το FENV_ACCESS , το οποίο θα δώσει στο πρόγραμμά σας πρόσβαση στο περιβάλλον Κινούμενου σημείου για να δοκιμάσετε τις εξαιρέσεις που προέκυψαν.

παράμετροι feraiseexcept ()

  • εκτός: Bitmask λίστα με σημαίες εξαίρεσης προς ανύψωση.
Το Bitmask δέχτηκε μακροεντολές
Μακροεντολή Τύπος Περιγραφή
FE_DIVBYZERO Σφάλμα πόλου Διαίρεση με το μηδέν
FE_INEXACT Ανακριβής Δεν υπάρχουν ακριβή αποτελέσματα όπως (1.0 / 3.0)
FE_INVALID Σφάλμα τομέα Τουλάχιστον ένα όρισμα που χρησιμοποιείται είναι μια τιμή για την οποία δεν έχει οριστεί η συνάρτηση
FE_OVERFLOW Σφάλμα υπερχείλισης Το αποτέλεσμα είναι πολύ μεγάλο σε μέγεθος για να αναπαρασταθεί από τον τύπο επιστροφής
FE_UNDERFLOW Σφάλμα εύρους ροής Το αποτέλεσμα είναι πολύ μικρό σε μέγεθος για να αναπαρασταθεί από τον τύπο επιστροφής
FE_ALL_EXCEPT Όλες οι εξαιρέσεις Όλες οι εξαιρέσεις υποστηρίζονται από την εφαρμογή

feraiseexcept () Επιστροφή τιμή

  • Η συνάρτηση feraiseexcept () επιστρέφει μηδενική τιμή εάν αυξηθούν όλες οι εξαιρέσεις που καθορίζονται από τις εξαιρέσεις.
  • Διαφορετικά επιστρέφει μη μηδενική τιμή.

Παράδειγμα: Πώς λειτουργεί η λειτουργία feraiseexcept ()

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

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 Ανακτήθηκαν επιτυχώς τα FE_OVERFLOW και FE_INVALID

ενδιαφέροντα άρθρα...