C언어 관련 책들 (언어, 알고리즘, 포인터 등) 소개

2008. 2. 16. 14:25서평/[서평] 과학,공학

여기서 필자가 가진 C언어와 관련된 몆권의 책을 소개한다. 굳이 이것을 사라는 것이 아니고, 이것들이 최고로 좋은 책이라고 선전하는 것도 아니다. 다만 필자가 샀던 책들이기에, 그래서 한번 죽 훓어봤기에 어떤 내용이었는지를 적어본 것이다.

이 외에도 다른 많은 책들이 있다. 그것들과 비교를 할수 있다면 더 좋았겠지만, 언어에 관해서는 필요한 몇권의 책으로 만족하고 더 이상의 책 속에 파묻히고 싶지는 않다. 다른 책들에 관해서는 이 분야에서 인터넷에서 지속적인 활동을 하는 많은 분들이 계시는 어렵지 않게 검색등을 통해 발견할 수 있으리라 생각된다.

여기엔 C++ 과 특히 윈도우 프로그램, 리눅스 프로그램등에 대해서는 다루지 않았다. 별도의 장으로 그것들을 소개해 보리라 다짐하며....

사용자 삽입 이미지
터보C정복 상세보기
임인건 지음 | 가남사 펴냄

이 책은 그 두께와 함께 여전히 C 언어에 대한 탁월한 감각을 보여주는 책이다. 쉽다. 그리고 단호하다.
이 책은 프로그램시 발생할 많은 문제를 방지할 안전장치까지 제공해 준다.

물론 지금 이 책을 그대로 받아들여 사용할 그런 상황은 아니다. 그 이후 많은 변화가 있었다. 하지만 여전히 이 책은 내게는 무척이나 사랑스러운 책이기도 하다. C++ 언어가 아닌 C를 공부할 때 비록 지금 사용하는 컴파일러는 아닐지라도 이 책을 따라가보면 많은 것을 배우게 된다.

C언어 알고리즘 철저입문 상세보기
SHOZO KASHIHARA 지음 | 영진.COM 펴냄
이 책은 C언어에 관한 예비 지식 없이 C 언어 알고리즘을 학습할 수 있도록 기술하였다. 알고리즘의 개념을 설명하고 샘플 프로그램으로 알고리즘을 만들어 보면서 C 언어를 자연스럽게 익힐 수 있도록 하였다.

 많은 C기본서들이 기초문법을 답습하는 것에서 그친다면 이 책은 그 기초문법을 활용해서 할수 있는 프로그램과 조금 더 응용할수 있는 알고리즘까지 영역을 확대했다는 점에 특징이라 할수 있을 것이다.

C언어 책이 여러권 있지만, 그 중 기초서적을 제외하면 그다지 많이 남지 않는다. 그리고 이 책은 그 몇권 안되는 책 중의 하나다.

이 책으로 내부에 있는 몇가지 프로그램을 직접 짜 보면서 알고리즘을 만드는 두뇌훈련을 해보면 앞으로의 프로그램에 많은 도움이 될 것이다. 이 책 역시도 기초문법보다는 응용과 활용면에서 도움이 되는 책이다.

이 책의 내용중 퀵소트 부분을 프로그램하면서 그 내부 알고리즘을 파악하기 위해 깊이 살펴보았다. 역시 프로그램은 기초 문법을 암기하는 것으로 만들어지지 않는다. 두뇌를 활용해 응용의 길을 찾는 것이 필요하고 그것을 위해서는 이미 누군가 만들어둔 알고리즘을 파악해 내는 작업이 선행되어야 한다. 그 다음 자신의 문제에 맞도록 알고리즘을 만들어 내야 하는 것이다.

이 책은 단순한 프로그램에 대한 책이 아니다. 언어에 대한 책이라기 보다는 문제가 주어지면 그 문제를 어떻게 접근해서 풀수 있을지를 안내해주는 두뇌활용 교재라고 보는 편이 더 적당할 것이다.

 

C 언어 포인터(다시 체계적으로 배우는) 상세보기
정재은 지음 | 정보문화사 펴냄
이 책은 포인터와 배열만을 다룬것이 아니라 가벼운 인자, 함수포인터, 함수 인자포인터, 자기 참조 구조체등 C언어의 전반에서 모두 사용되는 포인터를 다루고 있다. 메모리해제에 관한 자세한 해설과 예제등 다양한 실무경험을 통해 터득한 내용들을 쉽게 서술하였다

 책은 쉽지 않다. 이 책은 프로그램 초급자를 위한 책은 아니다. 기본적으로 C로 일정 프로그램을 짤수 있을거라는 가정하에 포인터때문에 애먹는 이들을 위한 책이다. 그래서 이 책은 내용이 쉽지 않은 것을 다룬다. 그럼에도 불구하고 이 책은 소스코드의 간단명료성 때문에 포인터에 대해서 지금까지 내가 무엇을 오해하고 혹은 내가 스스로 만들어낸 법칙 때문에 애를 먹고 있었는지를 알려준다.

종종 프로그램 언어를 대하다보면 별스런 묵상을 하게 된다. 이를테면 내가 아무리 좋은 의도를 가지고 프로그램을 짜더라도 그 원래의 법칙에 어긋난다면 어김없이 ERROR 를 출력하고 만다. 내가 아무리 선한 목적에 선한 프로그램을 짜더라도 컴파일러가 고려하는 것은 이 놈이 내가 정한 법칙을 따르는가 아닌가 하는 판단 기준일 뿐이다.

우리는 프로그램을 하면서도 컴파일러의 법칙을 따르지 않을 수 없다. 아무리 그 앞에서 절하고, 사정해도 가차없이 컴파일러는 ERROR 를 토해내고 만다.

왜 사람들은 하나님이 정한 구원의 법칙외에 다른 길을 스스로 만들어내고 그것이 진리여야된다고 주장하는 것일까? 아무리 그 의견이 그럴듯하더라도 결국엔 컴파일러의 의지앞에서 고개를 떨군채 디버깅을 해야만 하는 그 최종결과를 왜 사람들은 몰라줄까? ^^

조금 쓸데 없는 리뷰일지로 모르겠지만, 어쨌거나 이 책은 C컴파일러가 가진 최고의 난공불락의 고지 포인터를 담고 있다. 이 부분을 제대로 파악해 낸다면 이후로 그대의 삶은 컴파일러의 축복을 듬뿍 누리게 될 것을 믿어 의심치 않는다.

C언어 관련 책들 (언어, 알고리즘, 포인터 등) 소개
http://jeliclelim.tistory.com/182
JelicleLim(2008.2.16)