_clear87, _clearfp
Ruft ab und löscht das Float Status wort.
unsigned int _clear87( void );
unsigned int _clearfp( void );
Rückgabewert
Die Bits im zurückgegebenen Wert geben den Float Status vor dem Aufruf von _clear87 oder _clearfpan.Eine vollständige Definition der Bits, die von _clear87zurückgegeben werden, finden Sie unter Float.h.Viele der Bibliothek der mathematischen Funktionen ändern Sie das 8087/80287 unvorhersehbaren Ergebnissen mit wort Status._clear87 und Rückgabewerte von _status87 werden zuverlässiger, da weniger Gleitkommaoperationen zwischen bekannten Zustand des Status von wortes ausgeführt werden.
Hinweise
Die _clear87-Funktion deaktiviert die Ausnahme Flags im Float Status wort ausgelastete, legt das Bit auf 0 fest und gibt den Status wort zurück.Das Float Status wort ist eine Kombination des 8087/80287 Status wortes und andere Bedingungen, die vom 8087/80287 Ausnahmehandler, wie float Stapelüberlauf und Unterlauf erkannt werden.
_clearfp ist eine plattformunabhängige, portable Version der _clear87 Routine.Er ist für _clear87 Intel auf Plattformen (x86) identisch und wird auch vom MIPS ALPHA und - plattformen unterstützt.Um sicherzustellen, dass der Code float oder MIPS ALPHA übertragbar ist, verwenden Sie _clearfp.Wenn Sie nur x86-Plattformen abzielen, können Sie entweder _clear87 oder _clearfpverwenden.
Diese Funktionen werden bei der Kompilierung mit /clr (Common Language Runtime-Kompilierung) oder /clr:pure veraltet, weil die Common Language Runtime unterstützt nur die standardmäßigen Float Genauigkeit.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_clear87 |
<float.h> |
_clearfp |
<float.h> |
Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.
Beispiel
// crt_clear87.c
// compile with: /Od
// This program creates various floating-point
// problems, then uses _clear87 to report on these problems.
// Compile this program with Optimizations disabled (/Od).
// Otherwise the optimizer will remove the code associated with
// the unused floating-point values.
//
#include <stdio.h>
#include <float.h>
int main( void )
{
double a = 1e-40, b;
float x, y;
printf( "Status: %.4x - clear\n", _clear87() );
// Store into y is inexact and underflows:
y = a;
printf( "Status: %.4x - inexact, underflow\n", _clear87() );
// y is denormal:
b = y;
printf( "Status: %.4x - denormal\n", _clear87() );
}
.NET Framework-Entsprechung
Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.