_status87, _statusfp

提供: RAD Studio
移動先: 案内検索

float.h:インデックス への移動


ヘッダーファイル

float.h

カテゴリ

演算ルーチン

プロトタイプ

unsigned int _status87(void);
unsigned int _statusfp(void);

説明

浮動小数点ステータスを取得します。

_status87 は,浮動小数点ステータスワードを取得します。ステータスワードは,80x87 ステータスワードと,80x87 例外ハンドラによって検出される他の条件の組み合わせです。

_statusfp は _status87 と同じで,Microsoft との互換用です。

戻り値

戻り値のビットが浮動小数点ステータスを示します。_status87 と _status87 から返されるビットの定義については,float.h を参照してください。

コード例

#include <float.h>

/* Prints the status of the FPU */
void print_fp_status()
{
  /* Obtain the FPU status word */
  int fp_status = _status87();
  printf("Status = %d", fp_status);

  /* Write the statuses */
  if (fp_status & SW_DENORMAL)
    printf(" denormalized");

  if (fp_status & SW_UNDERFLOW)
    printf(" underflow");

  if (fp_status & SW_INEXACT)
    printf(" inexact");

  printf("\n");
}

int _tmain(int argc, _TCHAR* argv[])
{
  double big_value = 1e-40;
  float short_value;

  /* Print the default status */
  print_fp_status();

  /* Force FP status change */
  short_value = big_value;
  print_fp_status();

  /* Clear FPU status word */
  _clear87();

  /* Force FP status change */
  big_value = short_value;
  print_fp_status();
}

移植性

POSIX Win32 ANSI C ANSI C++

_status87

+

_statusfp

+