C ++ feupdateenv () - C ++ - vakiokirjasto

Feupdateenv () -funktio tallentaa ensin nykyiset korotetut liukulukuiset poikkeukset, palauttaa liukulukuympäristön annetusta fenv_t-objektista ja nostaa sitten aiemmin tallennetut poikkeukset.

Feupdateenv () -funktio määritetään otsikkotiedostossa.

feupdateenv () -prototyyppi

 int feupdateenv (fenv_t * envp);

Feupdateenv () -funktio ottaa argumentiksi tyypin fenv_t osoittimen, joka pitää yllä feholdexcept- tai fegetenv-asetuksella asetettua liukulukuympäristöä ja palauttaa kelluvan ympäristön nykyisen ympäristön kanssa.

feupdateenv () -parametrit

  • envp: Osoitin fenv_t-objektille, joka on asetettu aikaisemmalla kutsulla feholdexcept tai fegetenv tai on yhtä suuri kuin FE_DFL_ENV.

feupdateenv () Palautusarvo

  • Menestyksessä feupdateenv () -funktio palauttaa arvon 0.
  • Epäonnistumisen yhteydessä se palauttaa nollan.

Esimerkki: Kuinka feupdateenv () -toiminto toimii?

 #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() ( fenv_t envp; /* raise certain exceptions */ feraiseexcept(FE_INVALID|FE_DIVBYZERO); print_exceptions(); /* saves and clears current exceptions */ feupdateenv(&envp); print_exceptions(); /* restores saved exceptions */ feupdateenv(&envp); print_exceptions(); return 0; )

Kun suoritat ohjelmaa, tulos on:

 Korotetut poikkeukset: FE_DIVBYZERO FE_INVALID Korotetut poikkeukset: Ei mitään Korotetut poikkeukset: FE_DIVBYZERO FE_INVALID

Mielenkiintoisia artikkeleita...