第2回 コーディングスタイル


コーディングスタイルとは?


 早速、最近スタイルがごちゃごちゃになってきました(汗
多少考えなおしたところがあったので直しました。
 適当に見たって(▼.▼)y--oO

変数の書き方


・変数の宣言は関数の先頭に置く。
・変数の宣言と次の実行処理の間に空行を置く。
・グローバル変数は作成しないでファイルスコープのスタティック変数とする。


命名規則


・グローバル変数はできるだけハンガリー記法で省略せず、ローカル変数は極力省略する。
「ハンガリー記法禁止」 [参考]

・でも、スコープに対する物は、つけるべき!

[ m_ ] … モジュールスコープ・クラスのメンバ変数
[ p* ] … ポインタ

インデントとスペース


・インデントにはタブを使う。
・セミコロン( ; )の前には空白を入れない。
・制御文(if, for, while switch...)のすぐ後にスペースを入れる。
・条件式の括弧の両端にスペースを入れる。
・制御文と開き中括弧( { )の間にスペースを入れる。
・随時見やすいようにインデント

ブロック


・制御文の開き中括弧( { )は、条件式と同じ行にする。ただし、関数やメソッドは例外。
・本文をインデントする。
・else if-elseは、閉じ中括弧( } )の次の行へ改行する。

式の書き方


・二項・三項演算子の両端には空白を入れる。
・カンマ( , )の後ろにはスペースを入れる。
・対応する項目は、カラムを揃えて縦に整列する。
・長い行は演算子の後ろで改行する。

例外処理

[参考]

・ポリシーT
☆if文では正常ルートへの判定を行う(正常時はif節に進み、異常時はelse節に進む)
☆必ず関数の最後まで到達する(return文が1箇所にしかない)
☆同じ処理(fcloseなど)を何度も書かない。
★ネストが深くなるかも

・ポリシーU
☆if文で異常を検出し、異常発生時には即座にreturnする。
☆正常時のみ関数の最後まで到達する。
★returnを複数箇所で書くと構造化が破壊されるためPADなどで表現できない。
★同じ処理(fcloseなど)を何度も書かなければならないので、改造の時にやや面倒。

・ポリシーV
☆if文で異常を検出し、異常発生時には即座にgotoする。
☆必ず関数の最後まで到達する(return文が1箇所にしかない)
☆同じ処理(fclose)などを何度も書かない。
★goto文でジャンプするのであんまりなぁ…。例外は例外ってことでw

 処理の流れに関しては、どちらが正常で異常かみたいな事は言えない時があるかもしれないので、C言語レベルではサポートしてない「例外処理について」みたいな感じでまとめてみました。
やっぱ、例外ならTとUを補っているVが一番スマートなのかな…。C++やJavaに置き換えてみても例外っぽい感じするしね。