_status87, _statusfp, _statusfp2
Yüzen Al durum word'ın üzerine gelin.
unsigned int _status87( void );
unsigned int _statusfp( void );
void _statusfp2(unsigned int *px86, unsigned int *pSSE2)
Parametreler
px86
Bu adres, kayan nokta birimi x 87 durum sözcük olarak girilir.pSSE2
Bu adres, kayan nokta birimine SSE2 için durum sözcüğüyle girilir.
Dönüş Değeri
İçin _status87 ve _statusfp, bit değerini döndürdü kayan nokta durumunu gösterir. float bakın.H içerme dosyası tarafından döndürülen bit tam bir tanımı için _status87. Pek çok matematik kitaplığı işlevlerini 8087/80287 durum word, öngörülmeyen sonuçlarla değiştirin. Değerlerin _clear87 ve _status87 bilinen kayan nokta durumu word durumlar arasında daha az kayan nokta işlemlerini gerçekleştirdiyseniz daha güvenilir değil. _statusfp2Dönüş değeri yok.
Notlar
_status87 İşlev kayan nokta durumu word alır. Durum word 80287/8087/80387 durum word ve kayan nokta yığın taşması ve Yetersizlik durumu gibi 80287/8087/80387 özel durum işleyicisi tarafından algılanan diğer koşullar birleşimidir. Maskelenmemiş özel durumlar için durum word içeriğini döndürmeden önce kontrol edilir. Arayan, özel durumları bilgilendirildi, yani.
_statusfpplatformdan bağımsız, taşınabilir bir sürümü olan _status87. Aynı _status87 Intel (x 86) platformlarda ve MIPS Platformu tarafından da desteklenir. Kayan nokta kodunuzu MIPS için taşınabilir olmasını sağlamak için _statusfp. Yalnızca x 86 hedefleme, platformlar, kullanın ya da _status87 veya _statusfp.
_statusfp2İşlemci x 87 ve kayan SSE2'ın üzerine olan yongaları için (Pentium IV ve daha üstü) önerilir. İçin _statusfp2, adresleri, hem x 87 veya SSE2'ye kayan noktalı işlemci için kayan nokta durumu word ile doldurulur. X 87 ve SSE2'ye kayan nokta işlemcileri destekleyen bir yonga kullanırken 1 if EM_AMBIGUOUS set _statusfp veya _controlfp kullanılır ve x 87 veya SSE2'ye kayan nokta durumu word için başvurabileceğiniz olduğundan işlem belirsiz.
Bu işlevler ile derlerken itiraz /CLR (ortak dil çalışma zamanı derleme) veya /clr:pure common language runtime yalnızca varsayılan kayan nokta duyarlık desteklediği için.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_status87, _statusfp, _statusfp2 |
<float.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// 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();
}
.NET Framework Eşdeğeri
Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.