コーディングルールについて

まあ基本的なことが書いてあるけど、いくつか注意。
http://eetimes.jp/article/23004/

ルール1

つまり「ぶら下がり型if文の禁止」。
基本はこの通りなんだけどLinux Kernelだとむしろ推奨していたりする。


http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.6/CodingStyle.html

Do not unnecessarily use braces where a single statement will do.

1つの文しか実行しないところに、必要のない括弧を使わないでください。


if (condition)
	action();

if ( 条件文 )
	action();


始めてLinux Kernelのソースを見たときはビックリした。
ヘッダに関数が普通にあったりとか色々。


GCCのソースは違う意味でビックリだけどね。
あんなの読めるか。
Schemeにはまっている今だったら多少は読めるのかな?(多分無理)

ルール6、ルール9

C99の構文は結構便利。(個人的にはPC上だとC99 + gccじゃないと開発がだるい。)
けどルール6で移植性とか言っときながらC99の構文を使うのはNGかと。
あと、C++風の1行コメントとか、さらに1行コメントにASCII文字以外を使うとかもっての他だと思う。


理由として、この記事はそもそも組み込み系をターゲットにしている。
が、実際組み込み系のCコンパイラだと未だにC99に対応していない等当たり前。
gccが使えるプロジェクトならいいんだけど、その場合もコンパイラが将来変わらないとは言いきれないのが辛い。


どうでも良いけどルール9はマクロ関係なく呼び出し元を確認しないのが問題だと思う。