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