더북(TheBook)

마찬가지로 컴퓨터가 숫자를 표현하는 방법도 아키텍처마다 또는 프로그래머가 지정한 값의 타입에 따라 달라진다. 그래서 코드의 이식성을 높이기 위해서는 표현 방식보다는 값을 잘 다루는 것이 중요하다.

C를 사용한 경험이 어느 정도 있고 비트나 바이트 단위 연산에 익숙하다면 이 장을 읽는 동안만큼은 기존에 알고 있던 지식을 잠시 잊기 바란다. 여러분이 지금껏 컴퓨터에서 값을 구체적으로 표현하던 방식이 도움은커녕 오히려 방해가 될 수 있기 때문이다.

TAKEAWAY 5.1 C 프로그램은 표현 방식보다는 값을 중심으로 처리한다.

특정한 값에 대한 표현은 크게 상관없는 경우가 많다. 값과 표현 사이의 변환 작업은 컴파일러가 처리해 준다.

이 장에서는 이러한 변환이 구체적으로 어떻게 처리되는지 살펴본다. C 언어는 프로그램이 의도한 이상적인 상황을 추상 상태 기계(abstract state machine)(5.1절)로 표현한다. 다시 말해 작성한 프로그램이 실제로 구동되는 플랫폼에 관계없이 그 프로그램이 수행하고자 하는 바를 표현한다. 추상 상태 기계의 상태(state)를 구성하는 요소인 오브젝트(object)는 지정된 타입(type)에 따라 해석되고 일정한 값을 가지는데, 그 값은 실행 중에 수시로 변할 수 있다. 5.2절에서 C의 기본 타입에 대해 살펴본 후 5.3절에서는 이러한 기본 타입으로 특정한 값을 표현하는 방법에 대해 살펴본다. 5.4절에서는 표현식에서 여러 타입을 조합하는 방법을 알아보고 5.5절에서는 오브젝트가 올바른 초깃값을 갖도록 보장하는 방법을 살펴보며 5.6절에서는 반복해서 등장하는 값에 특정한 이름을 붙이는 방법을 설명하고 5.7절에서는 이러한 값을 추상 상태 기계로 표현하는 방법을 알아본다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.