Page 2 -
P. 2
들어가며
C 프로그래밍 언어가 등장하고 매우 오랜 시간이 흘렀다. C 언어에 대한 정통 레퍼런스는 C 언어
창시자인 커니핸과 리치(Kernighan and Ritchie[1978])가 쓴 책이다. C 언어는 엄청나게 다양
한 분야에 활용됐다. 실제로 우리 주변에서 C 언어로 작성한 프로그램과 시스템을 흔히 볼 수 있
다. 개인용 컴퓨터, 전화기, 카메라, 셋톱박스, 냉장고, 자동차, 메인프레임, 위성 등 프로그래밍
인터페이스를 가진 거의 모든 기기의 시스템은 C 언어로 작성됐다.
이처럼 C 언어로 만든 프로그램과 시스템은 어디서나 볼 수 있지만 정작 C 언어에 대한 제대로 된
정보는 매우 드물다. 능숙한 C 프로그래머조차 잘 모르는 C 언어 기능도 있다. 흔히 C 언어는 ‘배
우기 쉬운’ 언어라서 초보자도 금세 작성할 수 있고, 최소한 다른 코드를 복제해서 원하는 기능을
쉽게 구현할 수 있다고 알려져서 그런 것 같다. 이 관점에서 보면 C 언어는 사용자로 하여금 더 높
은 수준의 지식을 갖추도록 동기를 부여하는 데 실패한 셈이다.
이 책은 이러한 대중의 인식을 바꾸기 위해 C 언어에 대한 숙련도와 전반적인 프로그래밍 실력에
따라 단계를 나눠서 구성됐다. 어쩌면 독자에게는 생소한 구성일지도 모른다. 특히 포인터와 같은
어려운 주제를 처음부터 깊이 다루어 개념을 잘못 이해하지 않도록 여러 레벨에 걸쳐 설명한다.
이 책의 구성에 대해서는 잠시 후 자세히 설명하겠다.
(자바, 파이썬, 루비, C#, C++ 등을 비롯한) 다른 프로그래밍 언어와 마찬가지로 보편적으로 적
용 가능한 아이디어를 많이 소개하긴 하지만, 이 책에서는 주로 C만의 고유한 개념과 작성 기법,
C 언어에서 특별히 가치 있는 부분을 다룬다.
C 버전
이 책의 제목에서 알 수 있듯이 최신 C 언어는 창시자인 커니핸과 리치가 처음 만든 버전(흔히
K&R C라 부름)과는 상당히 다르다. C 언어는 표준화와 확장 과정을 거쳤으며, 현재는 국제 표준
기구인 ISO에서 C 언어 표준을 관리하고 있다. 그래서 흔히 C89, C99, C11, C17 등(각각 1989
년, 1999년, 2011년 2018년에 제정)으로 부르는 C 표준이 발표됐다. C 표준 위원회는 최신 표준
을 구현한 컴파일러가 예전 버전으로 작성된 코드를 의미상 동등한 실행 파일로 컴파일할 수 있도
록 하위 호환성을 보장하는 데 상당한 노력을 기울인다. 아쉽게도 이런 하위 호환성 때문에 새 기
6
모던c.indd 6 2021-12-29 오후 2:32:54