이 블로그는 방문자 통계를 위해 티스토리 기본 기능과 Woopra를 사용합니다. 원하지 않으신다면 사용하시는 웹 브라우저에 내장된 DNT 헤더를 켜고, JavaScript를 끄셔도 무방합니다.
이 블로그 방문자의 약 60%는 네이버 검색을 사용하십니다. 을 이용하시면 더 유용한 정보를 쉽게 얻게 되실 수도 있습니다. [mediatoday]
« 2019/11 »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
블로그 이미지
제가 주제인 블로그... 그냥 주제 없는 블로그입니다. 전공 분야나 예전 관심 분야 등등에 관한 글이 우선입니다만, 두어 문단을 넘길 만한 글이라면 대강 정리해 기록합니다. 학부생입니다. 트위터에서 볼 수 있습니다. http://aurynj.net/ 어­리


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 등의 함수로 예외 처리에 플래그 값으로 사용 가능하다. 이에 대한 설명은 생략.

댓글을 달아 주세요