Udostępnij za pośrednictwem


_status87, _statusfp, _statusfp2

Get unoszące się pkt stanu programu word.

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

Parametry

  • px86
    Ten adres jest wypełniona word stan 87 x pkt jednostki pływające.

  • pSSE2
    Ten adres jest wypełniona wyrazy stanu dla SSE2 pływające jednostki punktu.

Wartość zwracana

Dla _status87 i _statusfp, bity wartości zwracane wskazują stan zmiennoprzecinkowych.Zobacz PŁYWAKA.H dołączyć plik pełną definicję bitów, zwrócony przez _status87.Wiele funkcji biblioteki math zmodyfikować stan 8087/80287 programu word z nieprzewidywalne rezultaty.Zwraca wartości z _clear87 i _status87 są bardziej wiarygodne, jeśli mniejszej liczby zmiennoprzecinkowe operacje są wykonywane między Państwami znanych Word stanu zmiennoprzecinkowego._statusfp2nie ma żadnej wartości zwracanej.

Uwagi

_status87 Funkcja pobiera wyrazy stanu zmiennoprzecinkowego.Wyrazy stanu jest kombinacją word status 80287/8087/80387 i inne warunki wykrytych przez obsługi wyjątku 80287/8087/80387, takie jak przepełnienie stosu zmiennoprzecinkowego i niedomiar.Bez wyjątków są sprawdzane pod kątem przed zwróceniem zawartość word stanu.Oznacza to, że obiekt wywołujący jest informowany o oczekujące wyjątki.

_statusfpjest to niezależne od platformy, przenośne wersja _status87.Jest on identyczny z _status87 na platformach firmy Intel (x 86) i jest również obsługiwane przez platformę MCI.W celu zapewnienia, że kod zmiennoprzecinkowych jest przenośny do MCI, użyj _statusfp.Jeśli tylko są wyróżniane x 86 platformach, należy użyć albo _status87 lub _statusfp.

_statusfp2jest zalecane dla wiórów (takich jak Pentium IV i nowszych), które mają 87 x i SSE2 przestawne wskazywać procesora.Dla _statusfp2, adresy są wypełniane word stanu zmiennoprzecinkowego dla zarówno x 87 lub SSE2 procesora zmiennoprzecinkowego.Podczas korzystania z chip, obsługującym x 87 i SSE2 ruchomy punkt przetwórców, EM_AMBIGUOUS jest ustawiona na wartość 1, gdy _statusfp lub _controlfp jest używana i działań było niejednoznaczne, ponieważ może odnosić się do x 87 lub word stanu zmiennoprzecinkowego SSE2.

Funkcje te są przestarzałe podczas kompilacji z / CLR (kompilacja wspólnej Language Runtime) lub /clr:pure ponieważ common language runtime obsługuje tylko Domyślna precyzja zmiennoprzecinkowych.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_status87, _statusfp, _statusfp2

<float.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Przykład

// 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();
}
  

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

Zobacz też

Informacje

Wsparcie zmiennoprzecinkowe

_clear87, _clearfp

_control87, _controlfp, __control87_2