정수 타입 사이의 상호 관계가 플랫폼마다 다르기 때문에 이식성을 보장하면서 원하는 목적에 딱 맞게 타입을 선택하기 상당히 번거로울 수 있다. 다행히 컴파일러가 이 작업을 어느 정도 도와준다. 가령 특정한 속성을 가진 size_t와 같은 typedef들을 제공한다.
TAKEAWAY 5.12 크기(size), 원소의 개수(cardinality), 순서수(ordinal number)는 size_t 타입으로 표현한다.
참고로 부호 없는 타입이 가장 편리하다. 수학의 모듈로(modulo) 연산과 동일한 연산을 지원하기 때문이다. 오버플로가 발생해도 예외를 발생시키지 않고 최적화도 잘 된다. 자세한 내용은 5.7.1절에서 설명한다.
TAKEAWAY 5.13 음수를 가질 수 없는 작은 양(quantity)은 unsigned로 표현한다.
양수와 음수 둘 다 가질 수 있지만 분수(소수)는 가질 수 없는 값을 꼭 써야 할 경우에는 부호 있는 타입을 사용한다(5.7.5절 참고).
TAKEAWAY 5.14 부호를 가질 수 있는 작은 양은 signed로 표현한다.
TAKEAWAY 5.15 부호를 가질 수 있는 큰 차(difference)의 연산에는 ptrdiff_t를 사용한다.
0.5나 3.77189E+89와 같은 값에 대해 분수 연산을 수행하려면 부동 소수점 타입을 사용한다(5.7.7절 참고).
TAKEAWAY 5.16 부동 소수점 연산에는 double을 사용한다.
TAKEAWAY 5.17 복소수 연산에는 double complex를 사용한다.