Freigeben über


_clear87, _clearfp

Ruft ab und löscht das Gleitkommastatuswort.

unsigned int _clear87( void );
unsigned int _clearfp( void );

Rückgabewert

Folgende Bits im zurückgegebenen Wert geben den Gleitkommastatus vor dem Aufruf von _clear87 oder _clearfp an. Eine vollständige Definition der Bits, die von _clear87 zurückgegeben werden, finden Sie Float.h. Viele Features der mathematischen Bibliothek ändern das 8087/80287, mit Statuswort unvorhersehbaren Ergebnissen. Rückgabewerte von _clear87 und _status87 werden während zuverlässiger, weniger Gleitkommaoperationen bekannten zwischen Zuständen des Gleitkommastatuswortes ausgeführt werden.

Hinweise

Die _clear87-Funktion wird die Ausnahmeflags im Gleitkommastatuswort, legt das ausgelastete Bit auf 0 fest und gibt den Statuswort zurück. Das Gleitkommastatuswort ist eine Kombination aus 8087/80287 Statuswortes und anderen Bedingungen, die vom 8087/80287 Ausnahmehandler, wie Gleitkomma-Stapelüberlauf und Unterlauf erkannt werden.

_clearfp ist eine plattformunabhängige, portable Version der _clear87 Routine. Sie entspricht _clear87 auf Intel Plattformen (x86) identisch und wird auch durch das MIPS und die ALPHAplattformen unterstützt. Um sicherzustellen dass das Gleitkommacode zu MIPS oder dem ALPHA portabel ist, verwenden Sie _clearfp. Wenn Ihre Zielobjekte nur x86-Plattformen sind, können Sie entweder _clear87 oder _clearfp verwenden.

Diese Features werden beim Kompilieren mit /clr (Common Language Runtime-Kompilierung) oder /clr:pure veraltet, da Common Language Runtime nur die Standardgleitkommagenauigkeit unterstützt.

Anforderungen

Routine

Erforderlicher Header

_clear87

<float.h>

_clearfp

<float.h>

Weitere Informationen zur Kompatibilität finden Sie unter 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. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Gleitkommaunterstützung

_control87, _controlfp, __control87_2

_status87, _statusfp, _statusfp2