_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。 如需詳細資訊,請參閱平台叫用範例。