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