C ++ feupdateenv () - C ++ मानक पुस्तकालय

Feupdateenv () फ़ंक्शन पहले सहेजे गए फ़्लोटिंग-पॉइंट अपवादों को सहेजता है, फ़ाइन-पॉइंट परिवेश को दिए गए fenv_t ऑब्जेक्ट से पुनर्स्थापित करता है, फिर पहले सहेजे गए अपवादों को उठाता है।

Feupdateenv () फ़ंक्शन को हेडर फ़ाइल में परिभाषित किया गया है।

feupdateenv () प्रोटोटाइप

 int feupdateenv (fenv_t * envp);

Feupdateenv () फ़ंक्शन अपने तर्क के रूप में टाइप fenv_t के एक पॉइंटर को लेता है, जो पहले से फ़्लोटेक्सैप्ट या फ़ेगेटेनेव का उपयोग करके सेट किया गया फ़्लोटिंग पॉइंट वातावरण रखता है और वर्तमान परिवेश के साथ फ़्लोटिंग पॉइंट वातावरण को पुनर्स्थापित करता है।

feupdateenv () पैरामीटर

  • envp: fenv_t ऑब्जेक्ट को इंगित करता है जो कि पहले कॉल द्वारा feoundexcept या fegetenv पर सेट किया गया है या FE_DFL_ENV के बराबर है।

feupdateenv () वापसी मान

  • सफलता पर, सामंतदेव () फ़ंक्शन 0 देता है।
  • असफल होने पर, यह नॉनज़रो लौटता है।

उदाहरण: feupdateenv () फ़ंक्शन कैसे काम करता है?

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

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 उठाया अपवाद: FE_DIVBYZERO FE_INVALID उठाया गया अपवाद: कोई नहीं उठाया गया अपवाद: FE_DIVBYZERO FE_INVALID

दिलचस्प लेख...