_status87, _statusfp, _statusfp2

Abrufen des Status von wort ab.

unsigned int _status87( void );
unsigned int _statusfp( void );
void _statusfp2(unsigned int *px86, unsigned int *pSSE2)

Parameter

  • px86
    Diese Adresse wird mit dem Status wort für das Gerät des Gleitkommas x87 gefüllt.

  • pSSE2
    Diese Adresse wird mit dem Status wort für das Gerät des Gleitkommas SSE2-Anweisungen gefüllt.

Rückgabewert

Für _status87 und _statusfpgeben die Bits im zurückgegebenen Wert als den Status an.Zeigen Sie die FLOAT.H-Includedatei für eine vollständige Definition der Bits, die von _status87zurückgegeben werden.Viele Features der mathematischen Bibliothek ändern das 8087/80287 unvorhersehbaren Ergebnissen mit wort Status.Rückgabewerte von _clear87 und zuverlässiger, wenn _status87 sind weniger Gleitkommaoperationen zwischen bekannten Zustand des Status von wortes ausgeführt werden._statusfp2 hat keinen Rückgabewert.

Hinweise

Die _status87-Funktion ruft das Float Status wort ab.Im Status wort ist eine Kombination des 8087/80287/80387 Status wortes und andere Bedingungen, die vom 8087/80287/80387 Ausnahmehandler, wie float Stapelüberlauf und Unterlauf erkannt werden.Entlarvte Ausnahmen für überprüft werden, bevor der Inhalt des Status wortes zurückgibt.Dies bedeutet, dass der Aufrufer von ausstehenden Ausnahmen informiert ist.

_statusfp ist eine plattformunabhängige, portable Version von _status87.Es ist zu _status87 Intel auf Plattformen (x86) identisch und werden auch von der MIPS-Plattform unterstützt.Um sicherzustellen, dass der Code als MIPS übertragbar ist, verwenden Sie _statusfp.Wenn Sie nur x86-Plattformen abzielen, verwenden Sie entweder _status87 oder _statusfp.

_statusfp2 wird für Chips empfohlen (z. B. den Pentium IV und höher) mit einem x87 und einen Prozessor des Gleitkommas SSE2-Anweisungen haben.Für _statusfp2werden die Adressen mit dem Status von wort für das x87 oder Float Prozessor SSE2-Anweisungen gefüllt.Beim Erstellen eines Chip, der Prozessoren des Gleitkommas x87 und SSE2-Anweisungen unterstützt, EM_AMBIGUOUS auf 1 festgelegt ist, oder _statusfp verwendet, wenn _controlfp verwendet wird und die Aktion war mehrdeutig, da sie das x87 Wort float oder SSE2-Anweisungen den Status zugreifen kann.

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

_status87, _statusfp, _statusfp2

<float.h>

Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.

Beispiel

// crt_status87.c
// This program creates various floating-point errors and
// then uses _status87 to display messages indicating these problems.
// Compile this program with optimizations disabled (/Od). Otherwise,
// the optimizer removes the code related to 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",_status87() );

   // Assignment into y is inexact & underflows: 
   y = a;
   printf( "Status = %.4x - inexact, underflow\n", _status87() );

   // y is denormal: 
   b = y;
   printf( "Status = %.4x - inexact underflow, denormal\n", 
           _status87() );

   // Clear user 8087: 
   _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

_clear87, _clearfp

_control87, _controlfp, __control87_2