こんな時代だからこそ C: 結城浩「新版 C言語プログラミングレッスン [文法編]」

Cからしばらく離れていたので、久しぶりに復習したい。基本的なことは分かっているので、(プログラミングをやったことがない)初心者向けの本では駄目。かといって、仕様書を全部読むのはちょっと。けれどもそれなりに詳しく、包括的にCを扱ったものがいい。とはいえ無味乾燥なだけの文法書を通して読むのはつらい。

そんな自分が読んだのがこの本。


著者によれば、この本は、「プログラミング言語「C」の文法を網羅的に解説した」ものであり、「C言語で多少プログラムを書いたことがある、という読者を想定」しているとのこと(iii頁)。一読して、確かにこの想定した読者にふさわしいと思った。

本書の特徴を思いつく限り羅列してみる。

対象は、「Cを大まかに知っている」以上の人
完全なプログラミング初心者向きではない。また、他の言語を知っているが、Cはまったく知らないという人にも、少々厳しいかもしれない*1
解説は詳細だが、完全ではない
Cの文法要素について包括的に扱っており、便利である一方、規格書の内容の完全な解説ではない。よって、完全な仕様を示すまでもない部分では、ところどころアバウトな説明になっている部分もある。もちろん、規格書のような完全さを本書に求めるのは不当であり、必要なら規格書を読めばよいというだけのことである。
読んで面白い
ただ単にCの仕様を羅列しているのではなく、著者によるちょっとした一言やワンポイントアドバイス的なものが豊富に挿入されていて、ずいぶん読みやすいものになっている。Cをひととおり知っている、という人も、最初から読み通す気にさせられる。
標準Cライブラリの内容の解説つき
個々の関数や型などについて、簡単に解説している。レファレンスとして利用できて便利。ただし使用例についてはほとんどない。
C99非対応
本書の準拠するCの仕様はANSI-C(C89) = ISO-C(C90)であり、C99には対応していない。1995年発行の書の新版であるとはいえ、2006年発行の本なのだから、C99に対応してほしかった。

全体的に平易な記述で、とても読みやすい本だった。本記事冒頭に掲げたような状況の人(自分のような)にはぴったりの本である、と思う。

*1:知っている言語にもよるが、読めないことはないと思う。