TAKEAWAY 4.1 size_t 타입은 [0, SIZE_MAX] 구간의 값을 의미한다.
SIZE_MAX는 꽤 큰 값을 나타낸다. 플랫폼에 따라 다음 값 중 하나로 정해진다.
216 ‒ 1 = 65535
232 ‒ 1 = 4294967295
264 ‒ 1 = 18446744073709551615
플랫폼에서 최소한 첫 번째 값은 지원해야 한다. 요즘은 임베디드 플랫폼이 아닌 이상 SIZE_MAX를 이 정도로 작게 표현하는 플랫폼은 거의 없다. 현재는 주로 두 번째와 세 번째 값을 사용한다. 특히 세 번째 값이 다수를 차지하는데, 아직 두 번째 값을 사용하는 PC나 노트북도 있긴 하다. 굉장히 복잡한 계산이 아니면 이 정도 값으로도 충분하다. SIZE_MAX는 표준 헤더 파일인 stdint.h에서 제공하기 때문에 이 값을 따로 정의하는 등 프로그램 작성에 특별히 신경 쓸 일은 없다.
C 언어에서는 size_t처럼 ‘음이 될 수 없는 숫자’를 부호 없는 정수 타입(unsigned integer type)C이라 부른다. +나 !=와 같은 기호를 연산자(operator)C라 하고, 이런 연산자에 적용되는 대상을 피연산자(operand)C라 한다. 예를 들어 a + b에서 +는 연산자고, a와 b는 피연산자다.
표 4-1부터 표 4-3은 C에서 제공하는 모든 연산자를 간단히 정리한 것이다. 표 4-1은 값에 적용되는 연산자를, 표 4-2는 오브젝트에 적용되는 연산자를, 표 4-3은 타입에 적용되는 연산자를 정리한 것이다. 원하는 연산을 구성할 때는 여러 표를 함께 참조해야 할 수도 있다. 예를 들어 a + 5에서 a는 unsigned 타입의 변수이므로, 표 4-2의 셋째 줄을 보면 a가 평가된다는 것을 알 수 있다. 그러고 나서 표 4-1의 셋째 줄에 따라 a의 값과 5가 산술 연산자인 +로 결합된다. 표에서 지금 이해가 되지 않는 부분이 있더라도 걱정할 필요 없다. 아직 설명하지 않은 개념이 많이 나오기 때문이다. 이 책 전반에 걸쳐 참조하기 좋도록 정리한 것이다.