C言語の理解度を突いてみる
Cが使えると自称する人で、本当にC言語の意味を理解できてる人はわずかだったりします。
というかリファレンスマニュアル等を見たことが無い人も多かったりするし、かれらが参考にしたリソースが仕様を理解して書かれているかどうか怪しいものも多い。
実装があいまいだった(もうだいぶ)昔とは違い、いまはISO標準であるわけで、仕様について知っておくべきだと思います。実践から入っていて言語自体の知識はこれからなのはともかく、仕様や標準を調べること自体もしようとせずに、過去のコードがそう書かれているから、や、それでも動くから等の理由で開き直るようなのは問題外だよなあ。
上記の例でさえも、あやふやな人は多いでしょう。
さらに突くポイントには以下のようなものが考えられます:
- ラベルつき文
- ラベルが、文(宣言文以外)に付随するものだということ、そのもの
- switch文
- 続くのがブロック文でなくてもいいこと。単文、if文、while文などでもいい。
- caseやdefaultもラベルつき文であること、defaultが最後である仕様でも無いこと
- 分岐もほぼgotoセマンティクス
- ビットフィールド、バイトオーダー、アラインメント、セグメント
大半は「エキスパートCプログラミング」に書いてある内容です。
エキスパートCプログラミング―知られざるCの深層 (Ascii books)
- 作者: ピーターヴァン・デ・リンデン,Peter van der Linden,梅原系
- 出版社/メーカー: アスキー
- 発売日: 1996/03
- メディア: 単行本
- 購入: 17人 クリック: 404回
- この商品を含むブログ (78件) を見る
リファレンスとしては、ISO C99やClean Cにも対応している「Cリファレンスマニュアル第五版」(訳しすぎな面も多いけど)も持っているとよいでしょう
S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル
- 作者: 3世,サムエル・P.ハービソン,ガイ・L.,ジュニアスティール,3,Samuel P. Harbison,Guy L.,Jr. Steele,玉井浩
- 出版社/メーカー: エスアイビーアクセス
- 発売日: 2008/10/01
- メディア: 単行本
- 購入: 9人 クリック: 110回
- この商品を含むブログ (20件) を見る
最後に、必読書として「プログラミング作法」もあげておきましょう
- 作者: ブライアンカーニハン,ロブパイク,Brian Kernighan,Rob Pike,福崎俊博
- 出版社/メーカー: アスキー
- 発売日: 2000/11
- メディア: 単行本
- 購入: 58人 クリック: 1,152回
- この商品を含むブログ (209件) を見る