_clear87
, _clearfp
Kayan nokta durum sözcüğünü alır ve temizler.
Sözdizimi
unsigned int _clear87( void );
unsigned int _clearfp( void );
Dönüş değeri
Döndürülen değerdeki bitler, veya _clearfp
çağrısından _clear87
önceki kayan nokta durumunu gösterir. tarafından _clear87
döndürülen bitlerin tam tanımı için bkz. Float.h. Matematik kitaplığı işlevlerinin çoğu, tahmin edilemeyen sonuçlarla 8087/80287 durum sözcüğünü değiştirir. Kayan _clear87
_status87
nokta durum sözcüğünün bilinen durumları arasında daha az kayan nokta işlemi gerçekleştirildikçe değerleri döndür ve daha güvenilir hale getir.
Açıklamalar
İşlev kayan _clear87
nokta durum sözcüğündeki özel durum bayraklarını temizler, meşgul biti 0 olarak ayarlar ve durum sözcüğünü döndürür. Kayan nokta durum sözcüğü, 8087/80287 durum sözcüğünün ve kayan nokta yığını taşması ve taşma gibi 8087/80287 özel durum işleyicisi tarafından algılanan diğer koşulların bir bileşimidir.
_clearfp
, yordamın _clear87
platformdan bağımsız, taşınabilir bir sürümüdür. Intel (x86) platformları ile aynıdır _clear87
ve x64 ve ARM platformları tarafından da desteklenir. Kayan nokta kodunuzun x64 ve ARM'ye taşınabilir olduğundan emin olmak için kullanın _clearfp
. Yalnızca x86 platformlarını hedeflediyseniz veya _clearfp
kullanabilirsiniz_clear87
.
Ortak dil çalışma zamanı yalnızca varsayılan kayan nokta duyarlığı desteklediğinden, bu işlevler /clr (Ortak Dil Çalışma Zamanı Derlemesi) ile derlenirken kullanım dışı bırakılır.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_clear87 |
<float.h> |
_clearfp |
<float.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// crt_clear87.c
// compile with: /Od
// This program creates various floating-point
// problems, then uses _clear87 to report on these problems.
// Compile this program with Optimizations disabled (/Od).
// Otherwise the optimizer will remove the code associated with
// 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", _clear87() );
// Store into y is inexact and underflows:
y = a;
printf( "Status: %.4x - inexact, underflow\n", _clear87() );
// y is denormal:
b = y;
printf( "Status: %.4x - denormal\n", _clear87() );
}
Status: 0000 - clear
Status: 0003 - inexact, underflow
Status: 80000 - denormal
Ayrıca bkz.
Matematik ve kayan nokta desteği
_control87
, _controlfp
, __control87_2
_status87
, _statusfp
, _statusfp2