_status87, _statusfp, _statusfp2
Ottenere la parola di stato a virgola mobile.
unsigned int _status87( void );
unsigned int _statusfp( void );
void _statusfp2(unsigned int *px86, unsigned int *pSSE2)
Parametri
px86
Questo indirizzo viene riempito di parola di stato per unità in virgola mobile x87.pSSE2
Questo indirizzo viene riempito di parola di stato per unità in virgola mobile SSE2.
Valore restituito
per _status87 e _statusfp, i bit nel valore restituito indica lo stato della virgola mobile.Vedere il file di inclusione di FLOAT.H per una definizione completa di bit restituiti da _status87.Molte funzioni della libreria matematiche modificano la parola di stato di 8087/80287, con risultati imprevisti.valori restituiti da _clear87 e _status87 essere più affidabile compilando meno operazioni a virgola mobile vengono eseguite tra gli stati noto della parola di stato a virgola mobile._statusfp2 non dispone di alcun valore restituito.
Note
_status87 la funzione ottiene la parola di stato a virgola mobile.La parola dello stato è una combinazione della parola di stato di 8087/80287/80387 e di altre condizioni rilevate dal gestore eccezioni di 8087/80287/80387, come overflow dello stack a virgola mobile e underflow.Le eccezioni smascherate sono rilevare eventuali prima di restituire il contenuto della parola di stato.Ciò significa che il chiamante sia consapevole delle eccezioni in corso.
_statusfp è un piattaforma-indipendente, versione portabile _status87.Equivale a _status87 su piattaforme Intel (x86) ed è anche supportato dalla piattaforma di MIPS.Per assicurarsi che il codice a virgola mobile è portabile a MIPS, utilizzare _statusfp.Se si intende utilizzare solo le piattaforme x86, utilizzare l'uno o l'altro _status87 o _statusfp.
_statusfp2 è consigliabile per le fiche quali i Pentium vettore di inizializzazione e successive) che dispongono sia di un x87 che un processore a virgola mobile SSE2.per _statusfp2, gli indirizzi sono riempiti di parola di stato a virgola mobile sia per il x87 o il processore a virgola mobile SSE2.Quando si utilizza un fiche che supporta i processori a virgola mobile x87 e SSE2, EM_AMBIGUOUS è impostato su 1 se _statusfp o _controlfp viene utilizzato e l'azione era ambigua poiché potrebbe fare riferimento a x87 o alla parola di stato a virgola mobile SSE2.
Queste funzioni sono deprecate durante la compilazione con /clr (Compilazione Common Language Runtime) o /clr:pure poiché Common Language Runtime supporta solo la precisione dei valori a virgola mobile predefinita.
Requisiti
routine |
Intestazione di associazione |
---|---|
_status87, _statusfp, _statusfp2 |
<float.h> |
per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.
Esempio
// 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();
}
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.