Namespaces
Variants

Floating-point environment

From cppreference.net

Die Gleitkommaumgebung ist der Satz von Gleitkomma-Statusflags und Steuerungsmodi, die von der Implementierung unterstützt werden. Sie ist thread-lokal, jeder Thread erbt den initialen Zustand seiner Gleitkommaumgebung vom Eltern-Thread. Gleitkommaoperationen modifizieren die Gleitkomma-Statusflags, um abnormale Ergebnisse oder Zusatzinformationen anzuzeigen. Der Zustand der Gleitkomma-Steuerungsmodi beeinflusst die Ergebnisse einiger Gleitkommaoperationen.

Der Zugriff auf und die Änderung der Gleitkommaumgebung ist nur sinnvoll, wenn #pragma STDC FENV_ACCESS auf ON gesetzt ist. Andernfalls ist es der Implementierung freigestellt anzunehmen, dass die Gleitkomma-Steuerungsmodi stets die Standardeinstellungen sind und dass Gleitkomma-Statusflags niemals geprüft oder geändert werden. In der Praxis unterstützen wenige aktuelle Compiler wie HP aCC, Oracle Studio und IBM XL das #pragma explizit, aber die meisten Compiler ermöglichen dennoch einen sinnvollen Zugriff auf die Gleitkommaumgebung.

Inhaltsverzeichnis

Typen

Definiert im Header <fenv.h>
fenv_t Der Typ, der die gesamte Gleitkommaumgebung repräsentiert
fexcept_t Der Typ, der alle Gleitkomma-Statusflags gemeinsam repräsentiert

Funktionen

löscht die angegebenen Gleitkomma-Statusflags
(Funktion)
bestimmt welche der angegebenen Gleitkomma-Statusflags gesetzt sind
(Funktion)
löst die angegebenen Gleitkomma-Ausnahmen aus
(Funktion)
kopiert den Zustand der angegebenen Gleitkomma-Statusflags von oder zur Gleitkomma-Umgebung
(Funktion)
ermittelt oder setzt die Rundungsrichtung
(Funktion)
speichert oder stellt die aktuelle Gleitkomma-Umgebung wieder her
(Funktion)
speichert die Umgebung, löscht alle Statusflags und ignoriert alle zukünftigen Fehler
(Funktion)
stellt die Gleitkomma-Umgebung wieder her und löst die zuvor ausgelösten Ausnahmen aus
(Funktion)

Makros

Gleitkomma-Ausnahmen
(Makrokonstante)
Gleitkomma-Rundungsrichtung
(Makrokonstante)
Standard-Gleitkommaumgebung
(Makrokonstante)

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.6 Gleitkommaumgebung <fenv.h> (S.: TBD)
  • 7.31.4 Gleitkommaumgebung <fenv.h> (S.: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.6 Gleitkommaumgebung <fenv.h> (S. 150-156)
  • 7.31.4 Gleitkommaumgebung <fenv.h> (S. 332)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.6 Gleitkomma-Umgebung <fenv.h> (S. 206-215)
  • 7.31.4 Gleitkomma-Umgebung <fenv.h> (S. 455)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.6 Gleitkomma-Umgebung <fenv.h> (S. 187-196)

Siehe auch

C++ Dokumentation für Floating-point environment