_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 _clear87dö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 _clearfpkullanabilirsiniz_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