_clear87, _clearfp
Ottiene e cancella la parola di stato a virgola mobile.
unsigned int _clear87( void );
unsigned int _clearfp( void );
Valore restituito
I bit nel valore restituito indica lo stato della virgola mobile prima della chiamata a _clear87 o _clearfp.Per una definizione completa di bit restituiti da _clear87, vedere Float.h.Molte funzioni della libreria matematiche modificano la parola di stato di 8087/80287, con risultati imprevisti.valori restituiti da _clear87 e _status87 risultare più affidabile come meno operazioni a virgola mobile vengono eseguiti tra gli stati noto della parola di stato a virgola mobile.
Note
_clear87 la funzione consente di rimuovere i flag di eccezione della parola di stato a virgola mobile, imposta il bit impegnato a 0 restituisce la parola di stato.La parola di stato a virgola mobile è una combinazione della parola di stato di 8087/80287 e di altre condizioni rilevate dal gestore eccezioni di 8087/80287, come overflow dello stack a virgola mobile e underflow.
_clearfp è un piattaforma-indipendente, versione di portabilità _clear87 routine.È uguale a _clear87 su piattaforme Intel (x86) ed è anche supportato in piattaforme alfa e di MIPS.Per assicurarsi che il codice a virgola mobile è portabile a MIPS o alle componenti alfa, utilizzare _clearfp.Se si intende utilizzare solo le piattaforme x86, è possibile utilizzare l'uno o l'altro _clear87 o _clearfp.
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 |
---|---|
_clear87 |
<float.h> |
_clearfp |
<float.h> |
Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.
Esempio
// 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() );
}
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.
Vedere anche
Riferimenti
Supporto per le operazioni in virgola mobile