_clear87, _clearfp
obtient et désactive le mot d'état à virgule flottante.
unsigned int _clear87( void );
unsigned int _clearfp( void );
Valeur de retour
Les bits dans la valeur retournée indiquent l'état de la virgule flottante avant l'appel à _clear87 ou à _clearfp.Pour une définition complète des bits retourné par _clear87, consultez Float.h.plusieurs des fonctions de bibliothèque mathématique modifient le mot d'état de 8087/80287, avec des résultats imprévisibles.Les valeurs de retour d' _clear87 et l' _status87 sont plus fiables que moins opérations en virgule flottante sont exécutées entre les états connus du mot d'état à virgule flottante.
Notes
La fonction d' _clear87 désactive les balises d'exception dans le mot d'état à virgule flottante, définit le bit occupé à 0, et retourne le mot d'état.Le mot d'état à virgule flottante est une combinaison du mot d'état de 8087/80287 et d'autres conditions détectés par le gestionnaire d'exceptions de 8087/80287, tel que le dépassement de capacité de la pile à virgule flottante et le dépassement de capacité.
_clearfp est une version plateforme-indépendante et portable de la routine d' _clear87 .Il est identique à _clear87 sur les plateformes Intel (x86) et est également pris en charge par MIPS et les ALPHAS plateformes.Pour vous assurer que votre code à virgule flottante est portable à MIPS ou à l'ALPHA, utilisez _clearfp.Si vous ciblez uniquement les plateformes x86, vous pouvez utiliser _clear87 ou _clearfp.
Ces fonctions sont déconseillées lors de la compilation avec /clr (Compilation pour le Common Language Runtime) ou /clr:pure car le common langage runtime prend en charge uniquement la précision de virgule flottante par défaut.
Configuration requise
routine |
en-tête requis |
---|---|
_clear87 |
<float.h> |
_clearfp |
<float.h> |
Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.
Exemple
// 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() );
}
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.