次の方法で共有


_clear87、_clearfp

浮動小数点ステータス ワードを取得し、削除します。

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

戻り値

返される _clear87 または _clearfpを呼び出す前に値のビットは浮動小数点状態を示します。 ビットの定義に _clear87によって、参照します Float.h が返されました。 数値演算ライブラリ関数の多くは、予測できない結果を含む 8087/80287 のステータス、単語を修飾します。 いくつかの浮動小数点演算が浮動小数点ステータス Word の既知の状態との間で発生するように _clear87 からの戻り値と _status87 は信頼できるようになります。

解説

_clear87 関数は浮動小数点ステータス Word の例外のフラグをクリアし、0 にビジー ビットを設定し、ステータス ワードを返します。 浮動小数点ステータス ワードは浮動小数点スタック オーバーフローまたはアンダーフローなどの 8087/80287 の例外ハンドラーが検出できます 8087/80287 のステータス Word やそのほかの条件の組み合わせです。

_clearfp は プラットフォームに依存しない、_clear87 ルーチンのポータブル バージョンです。 これは、Intel (x86) プラットフォームで _clear87 と同じで、MIPS と ALPHA の各プラットフォームでサポートされています。 浮動小数点コードを MIPS または ALPHA に確実に移植するには、_clearfp を使用します。 x86 プラットフォームのみを対象とする場合は、_clear87 または _clearfp を使用します。

共通言語ランタイムは浮動小数点の既定の精度のみをサポートするので、/clr (共通言語ランタイムのコンパイル) または /clr:pure を使用してコンパイルする場合、これらの関数は使用しないでください。

必要条件

ルーチン

必須ヘッダー

_clear87

<float.h>

_clearfp

<float.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

// 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