これはいい本だと思う。
私自身C言語を使ってプログラミングはかなり長い間行っていて、ほとんどのことは知っているつもりだった。しかし、枯れた言語というイメージのC言語もやはり進歩しており、最新の状況は知らないことが多かった。(本書はC99に対応している)
実際に多くのC言語プログラマは、C言語でもconstやfor文などを使ったときのブロック構造の変化が標準的に使えるようになっているのを知らないのではないだろうか。
私自身はC++も使っていたので、constの使い方は分かっているつもりだったが、char const* p,const char * pの違いなどを改めて見てみると、自分の中で曖昧な部分が多かったと思わされる。
そしてこの本のおもしろいところは、例えばそのconstの説明自体が「constをつけるだけでコンパイル時にバグがあらわれる」「他人の関数に、引数の宣言にconstをつけろと言ってみる」など、突飛な切り口から入り、その理由をきちんと説明しているところだ。これが実におもしろく、引き込まれるように読んでしまった。
このように説明の構成はかなり独特だが、それがとても分かり易い。文章もいい意味で軟らかく読みやすい。そして、そういう書籍にありがちな技術的な裏付けの曖昧さがない。かなりガッチリC言語を知っている人が書いた本、という印象を受ける。
著者はC++やJavaも使うということなので、ぜひそちらも出版してほしい。