다음을 통해 공유


_clear87, _clearfp

부동 소수점 상태 단어를 가져오고 지웁니다.

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

반환 값

반환되는 값의 비트는 _clear87 또는 _clearfp 호출 전의 부동 소수점 상태를 나타냅니다. _clear87 에 의해 반환된 비트의 정의를 완료하려면, Float.h.를 참조 하십시오. 예기치 않은 결과로, 많은 수학 라이브러리 함수는 8087/80287 상태 단어를 수정합니다. 부동 소수점 상태 단어의 알려진 상태 사이에서 더 적은 부동 소수점 작업을 수행할 때 _clear87 및 _status87의 반환값은 더 신뢰할 수 있게 됩니다.

설명

_clear87 함수는 부동 소수점 상태 단어의 예외 플래그를 지우고 바쁨 비트를 0으로 설정하고, 상태 단어를 반환합니다. 부동 소수점 상태 단어는 8087/80287 상태 단어의 조합 및 부동 소수점 스택 오버플로 및 언더플로와 같은 8087/80287 예외 처리기에 의해 감지되는 다른 상태입니다.

_clearfp은 플랫폼 독립적이며, _clear87 루틴의 포터블 버전입니다. _clear87는 인텔 (x86) 플랫폼에서 동일하고 MIPS와 ALPHA 플랫폼에 의해 지원됩니다. 부동 소수점 코드는 MIPS 또는 ALPHA에 이식 가능한지 확인하기위해, _clearfp를 사용합니다. X 86플랫폼만 대상으로 하는 경우, _clear87 또는 _clearfp 를 사용할 수 있습니다.

공용 언어 런타임은 오직 기본 부동 소수점 정밀도만을 지원하기 때문에 이러한 함수는 /clr(공용 언어 런타임 컴파일) 또는 /clr:pure 를 사용하여 컴파일하는 경우 무시됩니다.

요구 사항

루틴

필수 헤더

_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