Partilhar via


_clear87, _clearfp

Obtém e limpa a palavra status de ponto flutuante.

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

Valor de retorno

Os bits no valor retornado indicam o status de ponto flutuante antes da telefonar para _clear87 ou _clearfp. Para obter uma definição completa dos bits retornado por _clear87, consulte Float.h. Muitas das funções de biblioteca de matemática modificar palavra 8087/80287 status, com resultados imprevisíveis.Retornar valores a partir de _clear87 e _status87 se tornam mais confiável sistema autônomo menos operações de ponto flutuante são executadas entre estados conhecidos da palavra status de ponto flutuante.

Comentários

The _clear87 função limpa os sinalizadores de exceção da palavra status de ponto flutuante, define o ocupado bit como 0 e retorna a palavra status. A palavra status de ponto flutuante é uma combinação de palavra 8087/80287 status e outras condições detectadas pelo manipulador de exceção 8087/80287, sistema autônomo estouro de pilha de ponto flutuante e estouro negativo.

_clearfp é uma versão independente de plataforma e portáteis das _clear87 rotina. É idêntico ao _clear87 em plataformas Intel (x86) e também é suportado pelo MIPS e alfa plataformas. Para garantir que seu código de ponto flutuante seja portátil, MIPS ou alfa, use _clearfp. Se você somente como alvo x86 plataformas, você pode usar qualquer um dos _clear87 ou _clearfp.

Essas funções são preterido durante a compilação de o CLR (ComComummon Idioma Tempo de execução ComComumpilation) ou /clr:pure como o common linguagem tempo de execução só oferece suporte a precisão de ponto flutuante padrão.

Requisitos

Rotina

Cabeçalho necessário

_clear87

<float.h>

_clearfp

<float.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.

Exemplo

// 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() );
}

Status: 0000 - clear Status: 0003 - inexact, underflow Status: 80000 - denormal

Equivalente do NET Framework

Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Suporte de ponto flutuante

_control87 _controlfp, __control87_2

_status87 _statusfp, _statusfp2