C ++ fesetenv () - C ++ standarta bibliotēka

Funkcija fesetenv () C ++ mēģina iestatīt peldošā komata vidi no norādītā fenv_t tipa rādītāja objekta.

Funkcija fesetenv () ir definēta galvenes failā.

fesetenv () prototips

 int fesetenv (fenv_t * envp);

Funkcija fesetenv () mēģina iestatīt peldošā komata vidi no objekta, uz kuru norāda envp. Envp vērtība iepriekš jāiegūst, izsaucot feholdexcept vai fegetenv, vai arī tai jābūt peldošā komata makro konstantei.

fesetenv () parametri

  • envp: rādītājs objektam, kura tips ir fenv_t un kurš saglabā peldošā komata vides statusu.

fesetenv () Atgriezeniskā vērtība

  • Pēc panākumiem funkcija fesetenv () atgriež 0.
  • Pēc neveiksmes tas atgriež nulli.

Piemērs: Kā darbojas funkcija fesetenv ()?

 #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; ) void print_current_rounding_direction() ( cout << "Current rounding method: "; switch (fegetround()) ( case FE_TONEAREST: cout << "FE_TONEAREST"; break; case FE_DOWNWARD: cout << "FE_DOWNWARD"; break; case FE_UPWARD: cout << "FE_UPWARD"; break; case FE_TOWARDZERO: cout << "FE_TOWARDZERO"; break; default: cout << "unknown"; ); cout << endl; ) void print_environment() ( print_exceptions(); print_current_rounding_direction(); ) int main(void) ( cout << "Initial environment " << endl; print_environment(); fenv_t envp; /* Save current environment */ fegetenv(&envp); feraiseexcept(FE_INVALID|FE_DIVBYZERO); fesetround(FE_DOWNWARD); cout << "After changing environment " << endl; print_environment(); /* Restores previous environment */ fesetenv(&envp); cout << "Restoring initial environment " << endl; print_environment(); return 0; )

Palaidot programmu, izeja būs:

 Sākotnējā vide Paaugstinātie izņēmumi: Nav Pašreizējā noapaļošanas metode: FE_TONEAREST Pēc vides maiņas Paaugstinātie izņēmumi: FE_DIVBYZERO FE_INVALID Pašreizējā noapaļošanas metode: FE_DOWNWARD Sākotnējās vides atjaunošana Paaugstinātie izņēmumi: Nav Pašreizējā noapaļošanas metode: FE_TONEAREST

Interesanti raksti...