空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

Linux カーネル コーディング規約

C言語について知るためにLinuxのコーディング規約を読んでみた。百戦錬磨のハッカーの主張とあって,なるほどなぁと思うところが多い。K&Rをリスペクトしているところも,流石だと思う。やっぱりCだったらK&RC++だったらD&Eとかプログラミング言語C++に従って,世の中の雑音に耳を傾けてはいけない。

興味深いのは,「インデント幅=8(かつ80文字)」と,「structをtypedefしない」というもの。

インデントについては,話しても不毛な話しか出てこないが,まぁ,何千人という人達が寄ってたかってコードを書く時,汚いコードを氾濫させないためには,この厳しい規則が役に立つようである。

興味深いのは「インデントの深さはNコまで」としないで,インデントそのものの幅を普通の倍にしているところ。80文字というのは,端末の標準のカラム数という,ある意味物理的な制約であるから,理系な人には納得がいきやすいのではないか。(そうでもないか。)

C++から来た人にはstructやenumをtypedefしないので毎回宣言の前に書かなければならないのは,結構辛い。まぁ,けれどもそれがCの世界なんだと思ってひとまずは従ってみようと思う。文法的には正しくても,表現として正しくない言い回しがあるのは,プログラミング言語にも当てはまることだ。さらに「正しい/正しくない」を越えて,「美しい/美しくない」というレベルの世界でも,やはりこの原則は守られるべきだろう。

ちょっと書き溜めたCのコードも少し修正してみようと思う。