共用方式為


_clear87 _clearfp

取得並清除狀態的浮點數字。

unsigned int _clear87( void );
unsigned int _clearfp( void );

傳回值

傳回值的位元表示的浮點數的狀態之前呼叫, _clear87或_clearfp。如需完整的定義,所傳回的位元_clear87,請參閱 Float.h。許多的數學程式庫函式修改 8087/80287 狀態的字,預期的結果。傳回值,從_clear87和_status87變得更可靠,因為較少浮點作業之間的浮點狀態的 word 已知狀態。

備註

_clear87函式會清除例外狀況中的旗標的狀態的浮點數字、 將忙線中的位元設定為 0,並傳回的狀態文字。這個狀態的浮點數字是 8087/80287 狀態文字及其他條件,偵測到 8087/80287 例外處理常式,例如浮點堆疊溢位和反向溢位的組合。

_clearfp平台無關、 可移植版本的_clear87常式。就等於_clear87在 Intel (x86) 平台上,也支援 ALPHA 與 MIPS 平台。若要確保您浮點數的程式碼可攜至 MIPS] 或 [ALPHA,請使用_clearfp。如果您只針對 x86 平台,您可以使用任何一種_clear87或_clearfp。

這些函式會被取代,以編譯時/clr (Common Language Runtime 編譯)或/clr:pure因為 common language runtime 只支援預設的浮點精確度。

需求

常式

所需的標頭

_clear87

<float.h>

_clearfp

<float.h>

如需相容性資訊,請參閱相容性在簡介中。

範例

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

.NET Framework 對等用法

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

請參閱

參考

浮點支援

_control87,_controlfp __control87_2

_status87,_statusfp _statusfp2