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