Namensräume
Varianten
Aktionen

Gleitkomma-Umgebung

Von cppreference.com
< c‎ | numerisch

Die Floating-Point-Umgebung ist die Menge der von der Implementierung unterstützten Floating-Point-Statusflags und Steuerungsmodi. Sie ist thread-lokal, wobei jeder Thread den anfänglichen Zustand seiner Floating-Point-Umgebung vom Eltern-Thread erbt. Floating-Point-Operationen modifizieren die Floating-Point-Statusflags, um abnormale Ergebnisse oder Zusatzinformationen anzuzeigen. Der Zustand der Floating-Point-Steuerungsmodi beeinflusst die Ergebnisse einiger Floating-Point-Operationen.

Der Zugriff auf und die Modifikation der Floating-Point-Umgebung ist nur sinnvoll, wenn #pragma STDC FENV_ACCESS auf ON gesetzt ist. Andernfalls ist die Implementierung frei, anzunehmen, dass die Floating-Point-Steuerungsmodi immer die Standardeinstellungen sind und dass Floating-Point-Statusflags nie getestet oder modifiziert werden. In der Praxis unterstützen nur 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 Floating-Point-Umgebung.

Inhalt

[edit] Typen

Definiert in der Headerdatei <fenv.h>
fenv_t Der Typ, der die gesamte Floating-Point-Umgebung repräsentiert
fexcept_t Der Typ, der alle Floating-Point-Statusflags kollektiv repräsentiert

[edit] Funktionen

löscht die angegebenen Gleitkomma-Statusflags
(function) [edit]
ermittelt, welche der angegebenen Gleitkomma-Statusflags gesetzt sind
(function) [edit]
löst die angegebenen Gleitkomma-Ausnahmen aus
(function) [edit]
kopiert den Zustand der angegebenen Gleitkomma-Statusflags aus oder in die Gleitkomma-Umgebung
(function) [edit]
holt oder setzt die Rundungsrichtung
(function) [edit]
speichert oder stellt die aktuelle Gleitkomma-Umgebung wieder her
(function) [edit]
speichert die Umgebung, löscht alle Statusflags und ignoriert alle zukünftigen Fehler
(function) [edit]
stellt die Floating-Point-Umgebung wieder her und löst die zuvor ausgelösten Ausnahmen aus
(function) [edit]

[edit] Makros

Gleitkomma-Ausnahmen
(macro constant) [edit]
Gleitkomma-Rundungsrichtung
(macro constant) [edit]
Standard-Gleitkomma-Umgebung
(macro constant) [edit]

[edit] Referenzen

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

[edit] Siehe auch

C++ Dokumentation für Floating-point environment