Freigeben über


_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.

Siehe auch

Referenz

Gleitkommaunterstützung

_control87, _controlfp, __control87_2

_status87, _statusfp, _statusfp2