エキスパートCプログラミング

C言語の核心を知りたいか?

私の一番好きなC言語の本がこれです。
中級から上級へのステップアップに最適!

真面目なタイトルとは裏腹に、ユーモアに溢れた楽しいプログラミング本です。

ノリはやや(かなり?)軽いですが、C言語の核心部分がよく分かり、中途半端だった理解を一気に補強できます。

言語仕様の穴が分かる

本書の大きな特徴として、Cの言語仕様を細かく検証している点があります。
つまりC言語の設計ミスを指摘して、注意点を警告してくれます。

今でこそ有名なC言語ですが、最初は仲間内だけで使うために作られました。
作者デニス・リッチー氏らは、当時まさか世界中に広まるとは予想せず、かなりフリーダムに開発しています。

そんな事情があり、手抜き検討不足っぽい仕様が結構存在します。

例えば…

  • breakの紛らわしさ(これで全米の電話が止まった…
  • 「*」が色々な事に使われちゃう
  • 演算子の優先順位が少し変
  • キーワードの妙な使い方(staticスコープとか)

などなど、どれも混乱しやすい事ばかりです。

本書はこうしたC言語の穴を、とにかくジョークとユーモアを連発しながら、解説してくれます。

デニス・リッチー氏(Cの作者)に敬意を払い、一方で皮肉たっぷりな内容は必見です。

メモリを制してレベルアップ!

本書は、メモリ関係、特にポインタと配列の解説が充実しています。

この2つは全くの別物なのですが(Cの仕様のせいで)たびたび誤解されて来ました。

その辺の詳細も含め、メモリ内部を分かりやすく図解してくれます。

私は色んなC言語本を読みましたが、本書のメモリ図解は飛び抜けて秀逸でした。

例えば、
 char a[] = “orange”; の a[2] と
 char *a = “orange”; の a[2] が
メモリ内部では全く違う事実を、ビジュアルに見せてくれ、すんなり納得できます。

他にも面白かったのは
 apple[ i ][ j ] という記述では、一見で 正確な型 を特定できない話です。

具体的には、下の宣言はみな apple[ i ][ j ]  でアクセスできます。

 int apple[23][12];
 int * apple[23];
 int ** apple;
 int (* apple)[12];

この理由も、本書のビジュアルな解説を読んだ結果、スッキリ理解できました

こんな風に、まだまだメモリにまつわる面白い話が沢山載っています。
(スタック、ヒープ、仮想メモリ、メモリリークなどなど)

ネタの嵐に震えるがいい

そして、忘れてはいけないのが遊び心です。

本書には随所に、プログラミングに関するネタ話が散りばめられています。

これが最高です。とにかく笑えます。

著者のプログラミングへの愛情がひしひしと感じられます。

  • 宇宙ロケットを落としたバグの話
  • ある人だけメールが届かないバグ
  • 2000万ドルのバグの正体
  • 読み難いソースの国際大会
  • コンパイラの妙なエラーメッセージ
  • タイムリープした?プログラム
  • プログラマはクリスマスとハロウィンを区別できない?

プログラマなら上のリストを見て、そそりませんか?

どれも本書に載っている面白ネタ話です。

私は講義中に本書のネタをよく使いますが、学生の受けが大変良く、いつも感謝しています。

文句なしにC言語の超名著

ここまで話したように、本書は常識的な技術書ではなく、他に類を見ない型破りな一冊です。

ぜひ読みながら、C言語とユーモアのセンスを磨いて欲しいと思います。
とりあえずC言語の基本が分かれば、だいたい楽しめます。

タイトルの通り、エキスパートへのガイドブックになる名著の中の名著です。

ちなみに私はボロボロになるくらい読みました。

私のエキスパートCプログラミング
ごらんの有様だよ

その他いろいろ

翻訳もノリノリである

本書は翻訳の素晴らしさも魅力です。
著者の軽いノリを上手く訳してあり、各種ジョークもすんなり分かります。

またそれに飽き足らず、色々ツッコミを入れてくれます。

副題の謎

原書の副題は 「 Deep C Secrets 」となっています。
これって、CSea をかけたのかな?

価格の謎

絶版につき、ユーズドがメインの入手手段ですが、なぜか価格の波が大きいなー。
ちなみに定価は3355円(税込)なので、4000円以下なら迷わず買い!

 

エキスパートCプログラミング

エキスパートCプログラミング
10

分かりやすさ

10.0/10

情報量

10.0/10

ユーモア

10.0/10

コストパフォーマンス

10.0/10

Points

  • C言語の核心が分かる
  • センス抜群の驚異的ユーモア
  • ポインタ・配列の解説が秀逸
  • 翻訳が素晴らしい
  • 関係なさそうで役に立つネタ話の数々

Notes

  • ピンと来ない所は流せばOK
  • 若い人には聞き慣れない製品名とかあるので…

もっと知りたい?
C言語_初級 | C言語_中上級 | C++_初級 | C++_中上級 | C#_初級 | C#_中上級 | Java_初級 | Java_中上級 | コンピュータ_サイエンス | アルゴリズム_ | ゲーム_プログラミング | DirectX_ | Unity_ | ゲーム_デザイン | ゲームのしくみ_ | 数学_ | プログラミング_テクニック | 歴史_偉人 | ソフトウェア工学_ | 読み物_エッセー | 人生_生き方 | 創造_発想 | 雑誌_ | 漫画_小説_映画 | メルマガのバックナンバー_

Kuniaki Ebata 登録者

プログラマーで現役のスキー国体選手です。
頭脳と体を動かすのが大好きなフレンズなんだね。専門学校で先生もやってます。

教え子をゲーム会社にどんどん送り込み、世界を面白くする野望を実現中。

プログラミングが上達するメルマガやってます。

ここを見たゲーム業界の卒業生へ
新作が出たら、連絡するか現物を送ってくれると嬉しいです。
ただし18禁・CERO-Dの場合は、厳重に梱包の上、品名をパソコン部品にて送る事(だいじ)。