_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 chamada 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 a palavra status 8087/80287, com resultados imprevisíveis.Retornar valores do _clear87 e _status87 se tornam mais confiável menos operações de ponto flutuante são realizadas entre estados conhecidos da palavra status de ponto flutuante.
Comentários
O _clear87 função limpa os sinalizadores de exceção da palavra de ponto flutuante de status, define o bit ocupado como 0 e retorna a palavra status.A palavra de ponto flutuante de status é uma combinação de palavra 8087/80287 de status e outras condições detectadas pelo manipulador de exceção 8087/80287, como estouro de pilha de ponto flutuante positivo e negativo.
_clearfpé uma versão independente de plataforma, portátil, da _clear87 rotina.Ele é idêntico ao _clear87 em plataformas Intel (x86) e também é suportado pelo MIPS e ALPHA plataformas.Para garantir que seu código de ponto flutuante é portátil, MIPS ou ALPHA, use _clearfp.Se você estiver direcionando apenas x86 plataformas, você pode usar um _clear87 ou _clearfp.
Essas funções são preteridas durante a compilação com /CLR (common Language Runtime Compilation) ou /clr:pure como o common language runtime oferece suporte apenas a precisão de ponto flutuante do 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() );
}
Equivalência do .NET Framework
Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.