プログラムの可読性を向上させるために、関連するコーディングガイドラインをインデントします
1.中括弧の位置
1.1どうやって置くの?
- 古代では、中括弧はプログラムと同じ行にありました。
- 開発期間中、2つの中括弧は別々に1行から始まります。
- 3番目のスタイルでは、左側の中括弧はステートメントと同じ行にあり、右側の中括弧は新しい行から始まります。これにより、コードの長さが短くなるだけでなく、コードブロックと関数の開始点が明確に識別されます。
- 現在、ほとんどすべてのプログラマーが3番目のスタイルを採用しています
1.2例
一部のプログラマー
は、関数の始まりを識別するときに2番目のスタイルを提唱しています。
- 制御構造を含む他の一般的なコードブロックの始まりを識別するときは、3番目のスタイルを使用します
void main()
{
/* <--包含main函数在内的所有函数的大括号独立成行*/
...中间略...
while(!EDN){
/* <--其他情况下左边的大括号和语句在同一行,右边的单独一行*/
...
}
...
}
- この新しいスタイルは、関数を他のコードブロックと区別するのに役立ちます
2.関数のインデント
2.1典型的な例
- 主要部分はインデントされておらず、単純なプログラムで関数ヘッダーと関数本体を簡単に区別できます。もう少しプログラムを増やすと見栄えが悪くなります。
void main()
{
printf("缩进示例\n");
}
- 本体は読みやすいようにインデントされており、通常は2〜4文字でインデントされています。運用上の考慮事項については、2文字でインデントでき、読み取りに関する考慮事項については、4文字でインデントできます。
void main()
{
printf("缩进示例\n");
}
- 中括弧はインデントする必要がありますか?
void main()
{
printf("缩进示例\n");
}
- このインデントは構文の観点からは問題ではありませんが、関数の開始位置と終了位置を把握するのは簡単ではありません。したがって、関数の中括弧をインデントしません
3.内部コードブロックをインデントする必要があります
3.1ルールと例
- コードブロックは、中括弧で囲まれたステートメントです。
- main()関数のコードブロックもインデントする必要があります。コードブロック内のステートメントは、中括弧よりも数文字少しインデントする必要があります。
3.2例
...
int main()
{
while(1)
{
total = 0;
for(i = 0; i < mon-1; i++)
{
total = total + a[i];
}
total = total + day;
if(mon > 2 )
{
total = total + 1;
}
printf("%4d-%02d-%02d is %dth days\n", year, mon, day, total);
}
system("pause");
}
4.出力部分をインデントする必要があります
4.1インデントしないことの結果
制御文の使用は、インデントの効果を最もよく反映できます。制御ステートメントは、制御を提供する判断部分と制御を受け取る出力部分に分けられます。
- 出力部分はインデントされていません、それは奇妙に見えます、それは人々に何かが欠けていると感じさせます
if (num1 == num2)
printf ("%d和%d相同。\n", num1, num2);
- 人々に次のような気持ちを与えるのは簡単です。
if (num1 == num2) <省略了某些语句>
printf ("%d和%d相同。\n", num1, num2);
4.2複数行のステートメントのインデント
- すべての出力部分をインデントするのが難しい場合は、コードブロックのスタイルで出力部分を書き込もうとすることもできます。次のコードでは、出力部分の内容はインデントされていませんが、出力部分の開始位置と終了位置が一目でわかります。
if (num1 == num2) {
printf ("%d和%d相同。\n", num1, num2);
printf ("%d和%d相同。\n", num3 num4);
}
- 単一の出力ステートメントでも括弧を増やすことができ、そのような不要な中括弧は冗長な中括弧になります。次のように:
if (num1 == num2){
printf ("%d和%d相同。\n", num1, num2);
}
5.無意味にインデントしないでください
- プログラマーは、スペースを使用して意図的に特定の文を強調したい場合がありますが、実際にはそうする必要はありません。強調したいだけの場合は、インデントの代わりにコメントやその他の方法を使用できます。
int main() {
printf("不要无意义地缩进。\n");
/***程序终止***/
return 0;
}
6.縮小プロセスの一貫性を維持します
6.1インデントの埋め込みの深さ
- 一部のプログラマーは、ステートメントのネストの深さに基づいてインデントの深さを決定することに慣れています。ネストレベルが多いほど、インデントする必要のある文字が多くなります。
- 読みやすさの観点から、これは時々良いアプローチです。
- つまり、入れ子の深さを示すためにインデントを使用しないでください。
- ネストを示すには、同じ数のインデント文字を使用する必要があります。ネストレベルが多すぎる場合は、ネストの深さに一致するコメントを追加できます。区別を示すため。
if (counter1 == 1) {
// 第一层if嵌套
if (counter2 == 10) {
//第2层if嵌套
if (counter3 == 100) {
//第3层if嵌套
if (counter4 == 1000) {
//第4层if嵌套
......
} //第4层if嵌套结束
} //第3层if嵌套结束
} //第2层if嵌套结束
} //第1层if嵌套结束
7.適切な収縮を選択します
- どのくらいインデントする必要がありますか?一般的に、4文字が最も適切で、最も広く採用されています。
- 2または4に関係なく、インデントは深すぎたり浅すぎたりすることはできません。これが基本原則です。
8.目立つ形式のコードを書かないでください
- 誰かがこのように書いたかどうかはわかりませんが、クラスメートが以前にこのように書いているのを見たことがあります。彼は、コードブロックの内容を強調するためだと言いました。
if(num1 = num2) {
num1 = 20;
num2 = 50;
}
- それを強調するためにメモシートを追加することをお勧めします。
- 基本的に、スクラッチペーパーの端に書くのと同じようにコードを突き出します。
9.まとめ
インデントの時点を確認する必要があります。
- 手順が終了する前。
- 他の人に手順を引き渡す前に;
- ファイルが書き換えられた後
- この記事を読んだ後、あなたは標準的なコーディングから進歩し、ゆっくりと蓄積していくことができると思います。