Sdílet prostřednictvím


_status87, _statusfp, _statusfp2

Získat plovoucí ukazatel stavu aplikace word.

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

Parametry

  • px86
    Tato adresa je vyplněna word stav pro x 87, plovoucí bod jednotky.

  • pSSE2
    Tato adresa je vyplněna stav word pro SSE2 plovoucí bod jednotky.

Vrácená hodnota

Pro _status87 a _statusfp, bity hodnoty vrácené označují stav s plovoucí desetinnou čárkou.Viz PLOVÁKU.H zahrnout soubor pro úplnou definici bitů vrácené _status87.Mnoho funkcí knihovny math upravit slovo 8087/80287 stav k nepředvídatelným výsledkům.Hodnoty z _clear87 a _status87 více spolehlivé méně operace s plovoucí desetinnou čárkou jsou prováděny mezi státy známé aplikace Word s plovoucí desetinnou čárkou stav._statusfp2nemá vrácenou hodnotu.

Poznámky

_status87 Funkce získá word stavu s plovoucí desetinnou čárkou.Stav aplikace word je kombinací aplikace word 80287/8087/80387 stav a další podmínky zjištěný popisovač 80287/8087/80387 výjimky, jako například přetečení zásobníku s plovoucí desetinnou čárkou a podtečení.U před návratem obsah stav aplikace word kontroluje nemaskované výjimky.To znamená, aby volající informován o čekajících výjimky.

_statusfpje nezávislý na platformě, přenosné verze _status87.Je shodné s _status87 na platformách Intel (x 86) a je podporováno také platformě MIPS.Chcete-li zajistit, aby váš kód s plovoucí desetinnou čárkou přenosný na MIPS, použijte _statusfp.Pokud volíte pouze x 86 platformách, použijte buď _status87 nebo _statusfp.

_statusfp2Doporučujeme čipy (například Pentium IV a novější), které mají 87 x a SSE2 s plovoucí bodu procesoru.Pro _statusfp2, adresy jsou vyplněna word čárce stav x 87 nebo SSE2 procesoru s plovoucí desetinnou čárkou.Při použití čip, který podporuje x 87 a SSE2 plovoucí bod procesory, 1, pokud je nastavena EM_AMBIGUOUS _statusfp nebo _controlfp se používá a byla akce dvojznačný, protože nelze odkazovat x 87 nebo word SSE2 stavu s plovoucí desetinnou čárkou.

Tyto funkce jsou již nepoužívá při kompilaci s /CLR (kompilace společné Language Runtime) nebo /clr:pure protože společný jazykový modul runtime podporuje pouze výchozí přesnost s plovoucí desetinnou čárkou.

Požadavky

Rutina

Požadované záhlaví

_status87, _statusfp, _statusfp2

<float.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Příklad

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

Ekvivalent v rozhraní .NET Framework

Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.

Viz také

Referenční dokumentace

Podpora s plovoucí desetinnou čárkou

_clear87 _clearfp

_control87, _controlfp, __control87_2