Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés
Se recomienda usar Visual Studio 2017
Esta documentación está archivada y no tiene mantenimiento.

_clear87, _clearfp

obtiene y borra la palabra de estado flotante.

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

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.

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.

rutina

Encabezado necesario

_clear87

<float.h>

_clearfp

<float.h>

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

// 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() );
}
estado: 0000 - claro
estado: 0003 - inexacto, subdesbordamiento
estado: 80000 - denormal

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.

Mostrar: