_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.