Partilhar via


_status87 _statusfp, _statusfp2

Obtenha o ponto flutuante palavra status.

unsigned int _status87( void );
unsigned int _statusfp( void );
void _statusfp2(unsigned int *px86, unsigned int *pSSE2)

Parâmetros

  • px86
    Esse endereço é preenchido com a palavra status para o 87 x, unidade de ponto flutuante.

  • pSSE2
    Esse endereço é preenchido com a palavra status para o SSE2 unidade de ponto flutuante.

Valor de retorno

For _status87 e _statusfp, os bits no valor retornado indicam o status de ponto flutuante. Consulte o FLOAT.H incluem o arquivo para uma definição completa dos bits retornado por _status87. Muitas funções de biblioteca de matemática modificar palavra 8087/80287 status, com resultados imprevisíveis.Retornar valores a partir de _clear87 e _status87 são mais confiáveis se houver menos operações de ponto flutuante entre estados conhecidos da palavra status de ponto flutuante. _statusfp2 não tem valor retornado.

Comentários

The _status87 função obtém a palavra status de ponto flutuante. A palavra status é uma combinação de palavra 80287/8087/80387 status e outras condições detectadas pelo manipulador de exceção 80287/8087/80387, sistema autônomo estouro de pilha de ponto flutuante e estouro negativo.Exceções não mascaradas são verificadas para antes de retornar o Sumário da palavra status.Isso significa que o chamador é informado da pendentes exceções.

_statusfpé uma versão independente de plataforma e portáteis do _status87. É idêntico ao _status87 em plataformas Intel (x86) e também é suportado pela plataforma MIPS. Para garantir que seu código de ponto flutuante é portátil MIPS, use _statusfp. Se você somente como alvo x86 plataformas, use um dos _status87 ou _statusfp.

_statusfp2 é recomendado para chips (por exemplo, Pentium IV e posterior) que possuem um x 87 e um flutuante SSE2 de ponto de processador. For _statusfp2, os endereços são preenchidos com a palavra status de ponto flutuante de 87 x ou o processador de ponto flutuante SSE2. Quando usar um chip que oferece suporte a x 87 e processadores de ponto flutuantes SSE2, EM_AMBIGUOUS é definido como 1 se _statusfp ou _controlfp é usado e a ação foi ambígua porque ele pode se referir ao 87 x ou a palavra de status de ponto flutuante SSE2.

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

_status87, _statusfp, _statusfp2

<float.h>

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

Exemplo

// crt_status87.c
// This program creates various floating-point errors and
// then uses _status87 to display messages indicating these problems.
// Compile this program with optimizations disabled (/Od). Otherwise,
// the optimizer removes the code related to 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",_status87() );

   // Assignment into y is inexact & underflows: 
   y = a;
   printf( "Status = %.4x - inexact, underflow\n", _status87() );

   // y is denormal: 
   b = y;
   printf( "Status = %.4x - inexact underflow, denormal\n", 
           _status87() );

   // Clear user 8087: 
   _clear87();
}

Status = 0000 - clear Status = 0003 - inexact, underflow Status = 80003 - inexact underflow, 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

_clear87, _clearfp

_control87 _controlfp, __control87_2