_control87, _controlfp
Nach oben zu float.h - Index
Inhaltsverzeichnis
Header-Datei
float.h
Prototyp
unsigned int _control87(unsigned int newcw, unsigned int mask);
unsigned int _controlfp(unsigned int newcw, unsigned int mask);
Beschreibung
Ändert das Gleitkommakontrollwort.
_control87 ruft das Gleitkommakontrollwort ab und ändert es.
Das Gleitkommakontrollwort ist ein Wert vom Typ unsigned int, der Bit für Bit bestimmte Modi in der Gleitkommabibliothek definiert, insbesondere Genauigkeit, Unendlichkeit und Rundungsmodi. Durch Änderung dieser Modi können Gleitkomma-Exceptions maskiert bzw. verfügbar gemacht werden.
_control87 ordnet die Bits in mask den entsprechenden Bits in newcw zu. Wenn ein Bit in mask gleich 1 ist, enthält das zugehörige Bit in newcw den neuen Wert für das entsprechende Bit im Gleitkommakontrollwort, und _control87 weist dem Bit im Kontrollwort den neuen Wert zu.
Es folgt ein einfaches Beispiel:
Ursprüngliches Kontrollwort: | 0100 | 0011 | 0110 | 0011 |
mask: | 1000 | 0001 | 0100 | 1111 |
newcw: | 1110 | 1001 | 0000 | 0101 |
Geänderte Bits: | 1xxx | xxx1 | x0xx | 0101 |
Wenn das Bit in mask gleich 0 ist, gibt _control87 das Gleitkommakontrollwort zurück, ohne es zu ändern.
_controlfp wird bereitgestellt, um die Kompatibilität mit Microsoft zu gewährleisten. _controlfp unterscheidet sich von _control87 nur dadurch, dass das Bit EM_DEMORMAL stets aus dem Parameter entfernt (deaktiviert) wird.
Rückgabewert
Die Bits im zurückgegebenen Wert spiegeln das neue Gleitkommakontrollwort wider. Die vollständige Definition der von _control87 zurückgegebenen Bits finden Sie in der Header-Datei float.h.
Portabilität
POSIX | ANSI C | ANSI C++ | Win32 | Win64 | macOS | |
---|---|---|---|---|---|---|
_control87 | + | + | + | + | ||
_controlfp | + | + | + | + |