C 표준, C++ 표준은 부동 소수점 표기법 (float, double 또는 long double)을 다루는 방식을 제공한다.
1. 매크로
C언어 표준 라이브러리 헤더 <math.h>에는 아래 매크로들이 존재한다 (C++ <cmath>에도 동일) .
- INFINITY
- NAN
이들 각각은 float 타입의 constant expression으로 expand된다. 이를 이용해 임의의 실수 인자로 NaN이나 Inf를 넘길 수 있다.
2. number classification macros
<math.h>(<cmath>)에는 아래 매크로들이 존재한다.
- FP_INFINITE
- FP_NAN
- FP_NORMAL
- FP_SUBNORMAL
- FP_ZERO
이들은 int 타입의 constant expression으로 expand된다. <math.h>의 표준 매크로 함수 int fpclassify(real-floating x)로부터 실수 값이 어떤 분류에 해당하는지 알 수 있다.
3. fenv.h
fenv.h에는 다음 예외 분류 매크로가 존재한다.
- FE_DIVBYZERO
- FE_INEXACT
- FE_INVALID
- FE_OVERFLOW
- FE_UNDERFLOW
이들은 블럭 내에서 #pragma STDC FENV_ACCESS ON 선언 후 feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag, fetestexcept 등의 함수로 예외 처리에 플래그 값으로 사용 가능하다. 이에 대한 설명은 생략.
'Sablog Models > 플랫폼·툴킷' 카테고리의 다른 글
gcc 4.7.0 build for windows msys 1.0 (0) | 2012.06.03 |
---|---|
Visual Studio 10(2010)에서 "계속하려면 아무 키나 누르십시오..."가 안 보여요! (0) | 2012.03.15 |
MS 컴파일러의 문자/문자열 자료형 (0) | 2011.07.25 |
JIT (Just-in-time) debug, Post mortem debug. (0) | 2010.08.22 |
_MSC_VER (2) | 2009.06.07 |