메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

C언어 펀더멘탈 : 견고한 프로그램을 위한 기본 원리

C언어 펀더멘탈 : 견고한 프로그램을 위한 기본 원리

한빛미디어

집필서

절판

4.1점 (9명)
좋아요 : 48
이 책은 『IT백두대간 C언어 펀더멘탈』의 재출간판입니다.

C 언어를 관통하는 철학과 알고리즘

머리 속에 담긴 C에 대한 오해와 선입견을 버리자

이 책은 한마디로 "정확하고 분명하게" C 언어의 개념을 설명하는 책이다. 이제 갓 C에 입문하려는 사람들 또는 기본을 다지지 못한 채 실용성만을 추구해왔던 사람들에게 C의 진수를 알게 해줄 것이다. C 표준을 공부하면서 오류를 잡아낼 정도의 실력을 갖춘 저자의 명쾌한 설명과 적절한 비유를 통해 독자들의 흥미를 유발시키면서도 기존 C 책에서 은근슬쩍 넘어갔던 C에 대한 오해와 선입견들을 깨뜨리는 신선함을 느낄 수 있다. 또한 독자와 비슷한 눈높이를 갖고 있는 베타테스터가 제기하는 의문을 통해 어려운 부분은 한 번 더 풀어 설명하고 있다. 앞으로 혹은 현재 C를 대하는 초보자 혹은 중급자 모두의 눈을 한층 높여줄 책이 될 것이다.

주요 내용
  • 지금의 C99 표준을 완성하기까지 C가 걸어온 길을 되짚어보자: C의 역사
  • C 언어를 배우기 위해 반드시 거쳐야 할 기초 과정: 데이터형과 기본 문장의 이해
  • 마의 산맥, 이젠 넘을 수 있다: 배열, 포인터, 구조체, 공용체 완벽 해부
  • 명칭과 추상적인 언어를 연결할 다리의 구조가 궁금하다: 선언의 이해
  • 수식을 이해하려면 데이터형을 자유자재로 바꿀 수 있어야 한다: 변환의 이해
추천평

포인터 때문에 C를 포기하고 자바를 택한 자신을 되돌아보게 했다. 힘있는 문체의 설득력과 충분한 주석의 자상함도 발군이다. 21세기를 위한 C언어 학습의 최전선에 서있는 듯한 현장감, 분명 누구에겐가 꼭 어울리고도 필요한 책이라 여겨진다.
- 이아스(오픈마루)
전웅 저자

전웅

서울 시립대 물리학과에 재학 중이며, 물리학과 산하 SPCC(Seoul Parallel Computing Center) 연구실에서 활동 중이다. 7년 전 처음 만난 C 언어와의 운명적 끈을 놓지 않고, C 언어 관련 한글, 영문 뉴스그룹(han.comp.lang.c, comp.std.c)에서 표준 C에 대한 논의에 활발하게 참여하고 있으며, C 언어의 국제 표준안(ISO/IEC 9899)에 있는 기술적인 오류를 표준화 위원회에 보고하는 등 C를 향한 사랑을 표현하고 있다.

Homepage : http://www.woong.org

>> PART 1 지반이 튼튼해야 건물이 바로 선다

Chapter 01 시작하기 전에
기술적인 내용을 전달하는 목적의 책은 분명 시집이나 소설책과는 다르다. 이 책은"정확한" C 언어를 전달하려는 기술서이므로 많은 수의 전문적인 개념 및 용어와 표현상의 형식을 사용한다. 본격적인 이야기를 시작하기 전, 표현·형식에 대한 몇 가지 약속과 책 전반에서 알고 있어야 할 기본적인 개념을 알아보자.
01. 미리 알아두기
02. 프로그래밍 언어란 무엇일까?
03. C는 컴파일 언어, 아니면 인터프리터 언어?
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - 소스만 보고 성능을 비교할 수 있을까?

Chapter 02 지금의 C를 만나기까지
이 장에서는 C 언어의 역사를 소개한다. 이렇게 C의 과거를 훑어보는 것은 미래를 예측할 수 있는 좋은 계기가 될 수도 있다. C의 뿌리를 이루고 있는 조상에서부터 지금의 C99 표준이 완성되기까지의 과정을 소개했다. 느긋하게 기술 잡지를 읽는다고 생각하자.
01. 나이 30대, C가 걸어온 길
02. 표준과 확장 그리고 진단 메시지
03. C와 C++, 대체 그 둘의 관계는?
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 어려운 이야기 - PDP-11에서 B 언어의 문제
전웅의 어려운 이야기 - 생활에서 찾아 본 표준
전웅의 어려운 이야기 - 확장의 두 가지 분류
전웅의 어려운 이야기 - [그림 2-7]에 관해 : C와 C++의 수학적 포함 관계

Chapter 03 누구에게나 환경은 중요하다
2장에 이르기까지 지겨운 잔소리와 약속들에 지친 독자들에게는 미안한 이야기지만, 아직도 본격적인 C 언어 이야기보다는 C 언어와 관련된 주변 이야기가 더 남아있다. C 언어를 설명한다고 해놓고서는 아직 C 언어의 맛도 보여주지 않는 필자가 미울지도 모르겠다. 하지만 한번만 더 필자를 믿고 따라와주길 바란다. 다행스럽게도(?) 이번에 다루는 내용은 이전에 살펴본 것보다 더 어렵다.
01. 프로그램이 번역, 실행되는 환경
02. 문자세트
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - ASCII에 얽힌 오해
전웅의 어려운 이야기 - 고정길이 레코드 파일 시스템
전웅의 어려운 이야기 - 멀티바이트 제대로 알기

>> PART2 이제는 C 언어로 말할 수 있다

Chapter 04 컴퓨터가 C를 듣는 방법
말을 잘 하기 위해서는 컴퓨터가 어떻게 듣는지를 이해하는 것이 중요하다. 아무리 똑똑한 사람이 쉬운 말, 고운 말로 컴퓨터를 설득한다고 해도 컴퓨터가 그 말을 곧이 곧대로 해석하지 않으면 얻을 수 있는 것이 없다. 지금부터 말하는 법을 배우기 위해 컴퓨터가 어떻게 듣는지를 알아보려 한다.
01. 토큰의 개념
02. 토큰의 요소(어휘적 요소)
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 어려운 이야기 - 헤더명의 토큰화
전웅의 어려운 이야기 - 수치 확장 문자열과 정수 상수의 차이
전웅의 어려운 이야기 - 문자열 상수 가운데 널문자를 넣어보자
전웅의 어려운 이야기 - 전처리기 숫자의 문법

Chapter 05 데이터형의 기본
데이터형을 올바르게 이해하는 것은 실제 프로그램을 작성할 때는 물론, 이 책의 나머지 부분을 공부하는 데 반드시 필요하다. 앞으로의 길이 얼마나 평탄한지는 데이터형의 학습 여부에 달렸다고 해도 과언이 아니다.
01. 기본 데이터형
02. 유도형의 소개
03. 데이터형의 분류
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - 패딩 비트가 끼면 달라진다?
전웅의 특급 노하우 - 데이터형 표현 방법
전웅의 특급 노하우 - 정수형 표현과 부동형 표현, 그 베일을 벗겨보자

Chapter 06 선언
선언은 3장에서 배운 명칭과 C의 추상적인 언어적 요소 사이를 연결해주는 다리라고 생각할 수 있다. 이 장에서는 데이터형에 대한 완벽한 이해를 잠시 미뤄놓고, 선언의 개념과 방법을 먼저 살펴보자.
01. 선언의 기본 개념
02. 선언의 형식
03. 복잡한 선언
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - const 한정어와 최적화
전웅의 어려운 이야기 - 명칭의 통용범위와 대상체의 기억수명
전웅의 어려운 이야기 - 그 외에 volatile 한정이 필요한 경우
전웅의 어려운 이야기 - 선언을 통한 한정

Chapter 07 포인터와 배열
이제는 C를 공부하는 많은 사람들을 도중 하차하게 만든다는 포인터와 배열 다룰 차례이다. 어려운 내용인 만큼 개념을 중심으로 설명했으니 진도가 늦더라도 절대 도중 하차하지 말자.
01. 포인터를 이해하자
총정리 - 꼭 기억하세요 & 필드 테스트
02. 배열
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - 겉은 다르지만 속은 같다
전웅의 특급 노하우 - pointer to array of T의 pointer to T로의 변환
전웅의 특급 노하우 - 비대칭 경계
전웅의 특급 노하우 - 왜 반대 방향은 허락해주지 않는가?
전웅의 특급 노하우 - malloc()가 반환하는 메모리
전웅의 어려운 이야기 - 포인터가 꼭 필요한가?
전웅의 어려운 이야기 - 같은 간접지정이지만...
전웅의 어려운 이야기 - 분할 아키텍처
전웅의 어려운 이야기 - 왜 다른 크기나 표현을 써야 하는가?
전웅의 어려운 이야기 - 어렵고도 어려운 변환
전웅의 어려운 이야기 - my_memcpy의 문제점
전웅의 어려운 이야기 - 형한정어와 널 포인터 상수
전웅의 어려운 이야기 - 사용자정의형 명칭과 불완전한 배열
전웅의 어려운 이야기 - 추가로 붙은 널문자
전웅의 어려운 이야기 - 널문자를 중간에 포함하는 문자열 상수
전웅의 어려운 이야기 - 문자열 상수가 만든 문자열도 배열

Chapter 08 함수
C에서 함수는 데이터형인 유도형의 한 종류이다. 표준화 이전의 C 언어를 반영하기 위해 다소 복잡해진 함수에 대해 정의와 선언, 호출이라는 세 관점에서 깊이 있게 알아보자.
01. 함수
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - 원형과 비원형 선언의 자동 선택
전웅의 어려운 이야기 - 사용자정의형 명칭과 함수 선언
전웅의 어려운 이야기 - 사용자정의형 명칭의 재선언
전웅의 어려운 이야기 - 비원형 선언과 널 포인터

Chapter 09 구조체·공용체 그리고 열거
각각 유도형과 정수형에 속하는 구조체·공용체와 열거는 서로 다른 특성을 가지고 있지만 선언 형태에 유사한 점이 많다. 프로그램을 추상화 하는 데 큰 공헌을 하는 이 데이터형들의 본질적인 모습을 파헤쳐보자.
01. 구조체와 공용체
02. 열거
03. 호환형과 합성형
04. 초기화
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - offsetof() 매크로로 구조체 이해하기
전웅의 어려운 이야기 - 저장 단위에 대해서
전웅의 어려운 이야기 - 1비트 크기의 유부호 비트 필드
전웅의 어려운 이야기 - 유연한 구조체 만들기
전웅의 어려운 이야기 - [예제 9-8]에 관해 : 15번 줄이 문제를 일으킬 수 있나?
전웅의 어려운 이야기 - 패딩 비트가 없는 unsigned char 형

Chapter 10 변환
수식을 제대로 이해하기 위해서는 연산 자체와 관련된 개념도 중요하지만 복잡한 데이터형 변환을 능숙하게 다루는 능력도 필요하다. 변환은 수식과 데이터형 사이에 놓이는 다리 같은 개념이다.
01. 변환의 기본 개념
02. 산술형의 변환
03. 여러 가지 변환 규칙
04. void 수식
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - 무부호 정수형의 모듈로 연산
전웅의 특급 노하우 - 값 보존과 무부호 보존
전웅의 어려운 이야기 - 부동소수연산의 정밀도
전웅의 어려운 이야기 - 변환의 이해를 돕기 위한 이야기

Chapter 11 수식
수식은 실행환경의 상태를 변화시키는 행위를 통해 원하는 결과를 얻어내는 명령형 언어의 핵심이다.
01. 수식의 기본 개념
02. 연산자
03. 상수 수식
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - sizeof 연산자의 명칭
전웅의 어려운 이야기 - 공통 초기열의 접근과 공용체 선언의 관계
전웅의 어려운 이야기 - offsetof() 매크로의 실용성
전웅의 어려운 이야기 - 번지 연산자와 간접 지정 연산자가 사라지지만...
전웅의 어려운 이야기 - sizeof 연산자의 오버플로우
전웅의 어려운 이야기 - 캐스트 연산자의 우선순위
전웅의 어려운 이야기 - 상수 수식과 널 포인터 상수

Chapter 12 문장
프로그램의 행동은 문장을 통해 기술된다. 프로그래머의 명령을 전달하는 문장에 대해서 공부해보자.
01. 문장의 개념과 종류
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - switch 문과 Duff"s device

Chapter 13 외부 정의와 프로그램 시작·종료
조금만 멀리 날아보자. 이제 프로그램의 구조를 조감(鳥瞰)할 시간이 되었다.
01. 외부 정의 모델
02. 프로그램의 실행과 종료
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 어려운 이야기 - 수정 가능한 프로그램 매개변수
전웅의 어려운 이야기 - main() 함수에서의 반환과 exit() 호출

Chapter 14 전처리기
이제 C 언어를 탐사하기 위한 긴 여행을 일단 마무리할 시간이 되었다. 마지막으로 다룰 내용은 프로그램의 번역 과정에서 지금까지 배운 내용보다 앞서 일어나는 전처리 과정이다.
01. 전처리기의 기본 개념
02. 매크로의 정의와 확장
03. 조건부 번역
04. 헤더와 외부 소스 파일의 첨가
05. 그 외의 전처리기 지시자와 기정의 매크로명
06. 프로그램 번역 과정
07. 모듈화를 위한 스타일
총정리 - 꼭 기억하세요 & 필드 테스트
전웅의 특급 노하우 - 기정의 매크로명으로 임플리멘테이션 조사하기
전웅의 어려운 이야기 - 매크로 재정의가 허락된 이유
전웅의 어려운 이야기 - 재귀적 확장에 대해
전웅의 어려운 이야기 - 인자에서 생성된 ## 연산자
전웅의 어려운 이야기 - #include 지시자와 매크로의 남용

꽤 많은 사람들이 찾는 것 같은데, 왜 절판인거죠?

 

1쇄만 더 해주시면 안될까요?

 

아니면 PDF로라도...

이 책은 결코 쉬운 책은 아니다.

하지만 이 책을 읽고 나면 내가 이제껏 알고 배워왔던

C언어에 대한 많은 지식들이 단편적인 것들에 국한 되어 있다는

사실을 깨달을 수 있다.

처음 C를 접한 사람에게는 조금은 힘들고 벅찰지도 모른다는

생각을 했다. 하지만 그와 동시에 이 책과의 빠른 만남이

그 분들의 첫걸음에 결코 해가 되리라곤 생각하지 않는다


C언어의 매력에 조금씩 빠져드는 사람들에게는 정말 필독서라고

생각한다.

이 책을 토대로 쌓은 지식은 프로그래머로서 살기 위해 노력하는

내 삶에 있어 도약을 위한 힘찬 첫걸음이 되리라 믿어 의심치

않는다.


자신이 알고 있는 지식에 믿음을 갖는 것도 중요할지 모른다.

하지만 올바른 것을 인정할 수 없는 시야의 소유자라면

발전을 더딜 수 밖에 없다.

국내 프로그래머들은 표준에 대한 의식이 미약하고 알려고 해도 알 기회가 적었습니다. 그래서 허접한 C/C++ 언어 책들이 여전히 시중에서 인기하에 팔릴 수 있었다고 봅니다.



전웅씨는 유즈넷과 여러 채널들을 통해서 C언어에 대한 정확하고 심도깊은 글을 쓰셨던 분이어서 책의 출간 이전 부터 기대하고 있었습니다.



C 언어 펀더멘탈은 기대를 만족시켜 주는 책이였습니다. C언어를 이만큼 깊이 있게 다룬 책은 이전에 본적이 없었습니다.



다만 너무 기술적이어서 딱딱하고 어려운 문체가 아쉽습니다. 그래서 별 4개를 부여합니다.

카이사르는 "인간은 누구에게나 모든 게 다 보이는 것은 아니다. 많은 사람은 자기가 보고 싶어 하는 것밖에는 보지 않는다."라는 말을 남겼다.

필자는 이 책을 읽으면서 동시에 hclc(han.comp.lang.c : C 뉴스그룹)에 작가가 포스팅한 글들을 읽으면서 C를 공부했다. 양이 많아서 지루한 감이 없지는 않지만 (그만큼 작가는 hclc에서 굉장히 많은 활동을 했왔다.) 책을 읽으면서 놓쳤던 내용들을 hclc에 올라와 있는 질문/답변에서 또 다시 발견함으로서 중요한 내용을 되새길 수 있는 기회가 되기 때문에 좋은 공부방법이 되었다고 생각한다.



아직까지도 필자에게 C는 어려운 대상이다.

이런 이유로 솔직히 hclc의 기술적인 토론 내용 보다는 서로에 대해 감정이 섞인 공격적인 글들을 더 재미있게 읽었다. 특히 작가가 말이 안통하는 상대의 플레임성 발언에 더 이상 hclc에서의 활동을 관둔다는 선언은 클라이막스가 아니었나 싶다.

물론 작가 자신은 당시에 포스팅했던, 의욕이 넘치던 시절의 불필요하고 까다로운 논쟁들을 부끄럽다고 치부하고 있으나 필자가 책을 다 읽고나서 hclc에서의 논쟁들을 다시한번 살펴본 바, 실재로 잘못 알고 있는 내용을 마치 정답인양 자연스럽게 포스팅하고 있는 사람들이 많다는 것을 깨달을 수 있었다.



대부분의 사람들은 "어설프게 아는 것은 아예 모르는 것보다 위험하다"라는 견해를 가지고 자기 글에 태클을 거는 작가를 곱게 바라보지 못한다. 하지만 문제는 그들이 어설프게 알고 있는 것이 아니라 "거짓말"을 하고 있는데 있다.



C에 대해서 토론해야 할 곳에서 C가 아닌 얘기를 해 왔던 것이다.



필자는 이러한 사람들의 태도를 카이사르가 지적했던 인간의 본성에서 다시금 발견할 수 있었다.

잘못 이해한 지식을 신봉하면서 살아온 것은 어쩔 수 없다고 해도 많은 사람들이 개선하려하기 보다 오히려 올바른 지식을 부정하려는 경향을 보이고 있으니 기원전, 약 2050년 전에 비해 인간이 나아진게 뭐가 있을까... 웃기지 않을 수가 없다.



이 책에는 잘못된 지식을 개선하고자 하는 필자의 간절한 바램이 실려있다.



(소위 C를 좀 한다는 사람들에게) 내가 알고 있는 것이 과연 진실인지 스스로 반성해 볼 만한 가치가 있다.

I want to believe C!!

제목과는 달리 이 책에 관한



엄청난 단점부터 몇 가지 소개하면 이 책은 다른



기초적인 C언어 책과는 달리 엄청나게 두껍다.



C언어를 처음 시작하는 사람들이 볼 경우가



꽤 많을 것이라고 생각하는데. 이 책은 아마도



그런 사람들은 생각도 하지 않을만한 두께입니다!



그리고. 아마 그렇게 C 언어에 그렇게 관심이 없던



사람이라면 1부를 못 띠고



"이 책은 싫어~ 재미없어~ 너무 어려워~"



란 말이 나올만큼 첫 부분이 초보나 이제 막



초급을 띠려던 사람들에게는 쉽지 않습니다.



(물론 C에 관심이 많은 사람이라면 1부는



재미로 읽고 지나갈 만한 이야기겠지만...)





어쨌든 단점으로 시작하긴 했지만



이 책 자체가 나쁜 것은 아니고요.



한빛에서 나오는 두꺼운 책들이 거의 그렇듯(?)



이 책도 엄청나게 말이 많고 읽는 사람을



약간은 질리게 한다는 점이 없잖아 있지만



2장부터의 기초적 설명에서 약간은 중급 이상의



수준까지 발전시켜주는 멋진 설명(손으로 쓴



듯한 글자들과 직접 그린듯한 그림들은 웬지



딱딱함을 덜어주기도 한다)과



가끔 눈에 띄는 팁들은 분명 C 언어를 배우려는



사람들에게 아주 많은 도움을 줄 것입니다.





음... 완전히 C 언어를 못하던 사람이라면



최근 시중에 나와있는 얇고 매우(!) 쉬운 책을



한번쯤 읽고 이 책을 보면 좋을테고



초보를 벗어나 중급 상급으로 도약하는 사람들



에게는 아주 좋은 책이라 생각됩니다.

프로그래머라면 대부분 C 언어를 알 것이다. 하지만 제대로 알고 사용하는 사람은 과연 얼마나 될까?



본인조차도 C로 많은 프로그램을 작성해본 경험이 없기에 이 책을 보게 되었다. 경험이 없는 상황에서 좋은 참고도서만큼 큰 도움을 줄 수 있는 것이 많지 않을 것이란 생각이 든다. 그동안 여러 C 언어에 대한 책을 보아왔지만 이 책은 왠지 다른 느낌을 준다. 과연 어떤 것이 다른지 살펴보자.



1장. 시작하기 전에 ~ 3장. 누구에게나 환경은 중요하다

이 책은 특이하게 다른 책에서처럼 "Hello world!" 같은 예제로부터 시작하지 않는다. 대신에 필자의 다양한 경험과 지식을 말해주고 있다. C 언어의 자세한 역사, 필자가 표준화 작업에 동참하면서 얻은 것들, C 프로그래머에게 필요한 기본적인 지식들... 다른 책에서는 얻을 수 없는 것들이다.



4장. 컴퓨터가 C를 듣는 방법 ~ 6장. 선언

여기서부터 C 언어의 데이터형과 사용법에 대해서 설명한다. 다른 책에 비해 아주 자세하게 설명하고 있다. 초보자들은 반드시 숙지하고 넘어가야 할 부분이다.



7장. 포인터와 배열

포인터와 배열에 대한 설명도 아주 많은 지면을 할애하고 있다. 포인터 부분에서는 간단한 예제와 많은 설명을 하고 있는데, 그냥 한 번 읽어서는 이해가 잘 안갈 것 같다. 역시 포인터는 넘기 어려운 산인 것일까? ‘좀 더 이해가 쉬운 예제를 들어서 설명했으면…’ 하는 아쉬움이 남는다.



8장. 함수

흔히 C는 함수로 시작해서 함수로 끝난다고 한다. 그만큼 함수가 중요하다는 의미일 것이다. 함수에 대해서도 많은 설명을 하고 있지만 자바나 C++의 메소드에 비해 난해하다는 느낌이다. 아마도 C 언어 자체의 특성이라고 할 수 있겠다.



9장. 구조체·공용체 그리고 열거

객체지향 언어라면 클래스로 이루어지지만 C 언어에서는 구조체를 사용하곤 한다. C 언어만을 아는 사람이라면 이해가 안가겠지만 객체지향 언어에 익숙한 독자들은 많은 비교가 되리라 생각된다.



10장. 변환

데이터 형 변환은 자칫 실수하면 엉뚱한 데이터로 처리 될 수도 있는 부분이다. 독자들로 하여금 변환 규칙에 따라 프로그램 하도록 자세히 설명되어 있다.



11장. 수식 ~ 13장. 외부 정의와 프로그램 시작,종료

디른 C 언어 책들과 비슷한 내용을 담고 있다.





14장. 전처리기

전처리기는 소규모 프로그램에서는 잘 사용되지 않을 수도 있지만 규모가 커질수록 유용하고 많이 사용하는 느낌을 받았다. 큰 프로젝트를 수행하기 위해서라면 반드시 익혀두어야 할 것이다.



이 책은 다른 C 언어 책에 비해 설명도 자세한 만큼 그 분량도 상당하다. 다른 책에서 잘 다루지 않는 C 언어의 역사나 필자의 해박한 지식 전달의 의미는 아주 좋다고 본다. 꼼꼼한 설명이지만 초보자들이 과연 인내심을 가지고 다 읽어줄지는 의문이다. 전반적으로 예를 들어 사용된 예제는 왠지 유용하지 않고 단편적인 설명에 따른 예제라는 느낌이다.

여러 님들이 읽고

난 후 부족한 점이 있다면

어느 부분인지 얘기해 주십시오

사야하는지 말아야 하는지

알면

다른 책을 보면서 이 해할 수

있을것 같거든요.

대학교에 입학해 컴퓨터와 친해지고 나서, 처음으로 배운 언어가 C 언어였고, 그로부터 얼마 동안 나름대로 C 언어를 공부했었기에 이제는 C 언어에 있어서 초급딱지는 땠다고 생각하고 있었다. 문법도 마스터했고, 어느 정도의 프로그램도 짤 수 있었기에...



하지만, 이 책을 읽으면서, 나의 그런 생각이 엄청난 착각이라는 사실을 깨달았고, C 언어의 진정한 깊이에 놀라지 않을 수 없었다. 그 동안, 내가 배운 것들은 ‘이럴 땐 이렇게, 저럴 땐 저렇게...’라는 식의 단편적인 지식들을 모아놓은 것들에 지나지 않았다. 정작, 중요한 “왜?, 어떻게?” 라는 질문을 하지 못하고서 말이다. 나에게 이 책은 그 동안 모아놓은 지식들에 진짜 힘을 불어넣어 주고, 명확하게 해주는 그런 책이었다. 왜 그렇게 써야 하는지, 어떻게 그렇게 되는지를 가르쳐주었기 때문이다. 게다가 C 언어에 대해 어느 정도 알고 있다는 나의 착각을 무색하게 만들만큼의 새로운 지식들도 많이 얻을 수 있었다.



이 책에서 가장 기억에 남는 부분은 선언(6장)과 포인터와 배열(7장)이었다. 그 동안 느낄 수 없었던 선언의 어려움을 알 수 있었고, 복잡한 선언을 해석하고 이해하는 방법을 알기 쉽게 설명하고 있다. 그리고 C 언어의 가장 큰 장애물이라고 할 수 있는 포인터를 저자의 명쾌한 철학으로 이해시켜 주고 있다. 뿐만 아니라 이 책 전반에 걸친 C 언어의 역사와 표준의 변화과정을 살펴보면서, “C 언어는 여전히 변하고 있다”는 말을 실감할 수 있었다.



C 언어에서 아래와 같은 질문에 제대로 답할 수 있는가?

- 문자열은 상수인가?

- 좌변값(lvalue)의 의미는?

-부동소수점에 대한 상등연산은 왜 바람직하지 않은가?

-함수는 data type?

-첨자지정수식([])과 함수호출은 결국 포인터에 적용되는 연산인가?, etc...

만약 위 질문에 제대로 답할 수 없다면... 아니 질문에 대한 정확한 답이 궁금하다면 이 책이 정확한 해답을 줄 수 있다.



이 책을 읽고 난 전체적인 느낌은 마치 고등학교 수학 定石과 같은 느낌이라는 것이다(C 언어의 표준을 가지고서 C 언어를 설명하고 있다는 점에서, 그리고 명쾌하고 직관적인 개념 설명에서...). 그 동안 남이 잡아놓은 물고기를 아무 생각 없이 먹기만 했었지만, 이제는 C 언어라는 바다에서 물고기 잡는 방법을 명확하게 배운 느낌이라고나 할까??? 이제부터 넓고도 깊은 C 언어의 바다를 항해하면서, 열심히 그리고 제대로 물고기 잡는 연습을 해야겠다.



마지막으로, 『돌아가기만 하면 프로그램인가?』 라는 저자의 질문에 뜨끔하다면, 그리고 C 언어의 뿌리를 확고히 다지고 싶은 의지가 있다면, 이 책을 통해 C 언어에 한 걸음 더 다가갈 수 있을 것이다.

우선 책을 본 소감은 "좋다" 이다.



뭐랄까...원서에 대한 부담을 느꼈던 이들에게 좋은 길라잡이가 될것같다는 생각이다. 이 책으로 인해서 적어도 C 를 함에있어서는 원서에 의존하지 않아도 되리라는 생각이 든다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
C언어 펀더멘탈 : 견고한 프로그램을 위한 기본 원리
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
C언어 펀더멘탈 : 견고한 프로그램을 위한 기본 원리
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
C언어 펀더멘탈 : 견고한 프로그램을 위한 기본 원리
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 책0