switch文のインデントってどうしてますか?
よく教本ではcaseにインデント付けていますよね。
switch(data){
case 0:
break;
case 1:
break;
default:
break;
}
大体この書き方で解説しているものが多いと思うんですけど、自分も最初は教本に習ってこの書き方をしていましたが、switchの閉じカッコでインデントが2つ下がるのが凄く違和感ありました。
それで、caseってgoto文のラベルに似ていませんか?
ラベルってインデント付けないですよね。↓こんな風に
int Func(int *data)
{
if(data == NULL){
goto L_ERROR;
}
(*data)++;
return 0;
L_ERROR:
return 1;
}
switch文からcaseにジャンプするわけですから、解釈としてはswitch文に限定されたローカルラベルなんですよね。
そう考えるとcaseのインデントをswitch文に合わせた方が自然に見えませんか?
switch(data){
case 0:
break;
case 1:
break;
default:
break;
}
switch文のインデントは今までのプログラマー人生で何度か書き方が変わりましたが、最終的にこれに落ち着きました。
この書き方がスタンダードになれば良いのにな!!
このような細かな点も含めて、プログラムの可読性はとても重要です。
プログラミングにおいて、「数か月後の自分は他人」という格言があります。
実際に私も職場でソースコードを見て、「これ誰が書いたんだ?汚いし冗長だなぁ」とか思っていたら過去の自分が書いたコードでした。職場の皆さんの誰かだと疑ってしまいました。ごめんなさい。笑
「今自分が書いているから分かる」のと、「誰が見ても分かりやすい」は全然違います。
読みやすい、分かりやすいコードを書くように、普段から意識していきましょう。
C言語やjavaなどの入門書を読み終えて、基本を習得した後に、是非「リーダブルコード」を読んでみてください。可読性に関して、3年ぐらいかけて培われることが、まとめられていておススメの書籍です。
created by Rinker
¥2,640(2023/05/30 15:22:47時点 楽天市場調べ-詳細)
コメント