C 표준에는 다른 타입도 많이 정의돼 있는데, 그 중에서도 특별한 종류의 산술 타입이 있다. 몇 가지만 예를 들면 표 5-2와 같다. 또 다른 타입으로 플랫폼에서 지원하는 최대 너비에 대한 타입도 있다. 이 타입은 전처리기가 산술 연산이나 비교 연산을 수행하는 데 쓰이기도 한다.
▼ 표 5-2 특별한 종류의 산술 타입
타입 |
헤더 |
정의 |
의미 |
size_t |
stddef.h |
|
크기나 원소 개수를 표현하는 데 적합 |
ptrdiff_t |
stddef.h |
|
크기 차를 표현하는 데 적합 |
uintmax_t |
stdint.h |
|
최대 너비 부호 없는 정수, 전처리기 |
intmax_t |
stdint.h |
|
최대 너비 부호 있는 정수, 전처리기 |
time_t |
time.h |
time(0), difftime(t1, t0) |
에포크 이후의 달력 시간(초 단위) |
clock_t |
clock_t |
clock() |
프로세서 시간 |
time_t와 clock_t 타입은 시간을 다루는 데 사용된다. 두 타입에 대한 시간 연산의 정밀도가 플랫폼마다 다르다(semantic type). 산술식에 사용할 수 있는 초 단위 시간은 difftime 함수로 구하며, 이 함수는 두 타임스탬프(timestamp)의 차를 구한다. clock_t 값은 현재 플랫폼의 프로세서 클럭 사이클 모델을 제공한다. 그래서 초보다 작은 단위를 사용하는 경우가 많다. 이런 값을 초 단위로 변환하려면 CLOCKS_PER_SEC를 사용하면 된다.