_clear87, _clearfp

obtiene y borra la palabra de estado flotante.

unsigned int _clear87( void );
unsigned int _clearfp( void );

Valor devuelto

Los bits del valor devuelto indican el estado flotante antes de la llamada a _clear87 o a _clearfp.Para ver una definición completa de los bits devueltos por _clear87, vea Float.h.Muchas de las funciones de la librería matemática modifican la palabra de estado de 8087/80287, con resultados imprevisibles.Los valores devueltos de _clear87 y _status87 pasan a ser más predecibles mientras menos operaciones de punto flotante se realizan entre estados conocidas de word de estado flotante.

Comentarios

La función de _clear87 borra los marcadores de la excepción en la palabra de estado flotante, establezca el bit No disponible en 0, y devuelve la palabra de estado.La palabra de estado flotante es una combinación de palabras de estado de 8087/80287 y otras condiciones detectadas por el controlador de excepciones de 8087/80287, como desbordamiento de pila y subdesbordamiento de punto flotante.

_clearfp es una plataforma-independiente, versión portable de la rutina de _clear87 .Es idéntico a _clear87 en plataformas Intel (x86) y también es compatible con MIPS y plataformas Alpha.Para asegurarse de que el código flotante sea portable a MIPS o a la ALFA, utilice _clearfp.Si usa como destino sólo las plataformas x86, puede utilizar _clear87 o _clearfp.

Se han dejado de utilizar estas funciones al compilar con /clr (Compilación de Common Language Runtime) o /clr:pure porque Common Language Runtime admite únicamente la precisión flotante predeterminada.

Requisitos

rutina

Encabezado necesario

_clear87

<float.h>

_clearfp

<float.h>

Para obtener más información de compatibilidad, vea compatibilidad en la Introducción.

Ejemplo

// 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 en .NET Framework

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.

Vea también

Referencia

Compatibilidad de punto flotante

_control87, _controlfp, __control87_2

_status87, _statusfp, _statusfp2