0

私はgithubでGNUstepプロジェクトを閲覧していて、この小さなループに出くわしました...

for(; i < 9; i+=1)
{
  for(;j < 9; j+=1)
  {
      /* Inner loop code - snipped */
  }
}

すべてではありませんが、ほとんどの増分操作は、ソース コードで' +=1 ' を使用して実行されました。それが一貫していれば意味があります。それが一貫しているなら、私はそれを単純な個人的な好み、または読みやすさにまで分類します.

ただし、1 人の人物が取り組んでいるように見えるプロジェクト (結局のところ、単純な数独ゲームです) の場合、インクリメンタル操作のスタイルが異なることに少し興味があります。

for(; i<10; i++)
{
  /* inner loop code - snipped */
}

今、私はこの質問を読み、私の疑いを確認しました -コンパイラは、使用されている構文に関係なく、同じ低レベル コードを生成する必要があります

これは、ベスト プラクティスなのかスタイル ガイドラインなのかを考えさせられましたが、同じコーダーがインクリメントの両方の方法を使用しています。個人的に言えば、私は何も考えずに ' i++ ' を使用しています。これはどのコーダーにとっても自然なことだと思います。ほとんど考えずに入力するだけです。

何か足りないのですか、それとも「ただの理由」ですか? 両方のタイプのインクリメントを混在させる理由はありますか? 両方が同じ ASM にコンパイルされる場合、一方が他方よりも優れたパフォーマンスを発揮する状況はないと思います。

4

4 に答える 4

3

通常、これは複数のプログラマーがいて、それぞれが独自のコーディング設定を持っており、プロジェクトが厳密なコーディング スタイルを強制していない場合に発生します。

違いはありません。

于 2012-07-10T13:53:50.590 に答える
1

これが 1 人のプロジェクトである場合、最も可能性の高い理由は、プログラマーが使用するスタイルを途中で変更したことです。

于 2012-07-10T14:13:25.647 に答える
1

「ある人」が他のプロジェクトで期待したことを達成しているループを見つけて、+= または ++ を変更することなく怠惰にコピーペーストした場合はどうなるでしょうか (彼が何を使用するかによって異なります)。

どちらか一方を使用する際に私の頭に浮かぶ唯一の違いは、リンクした質問で指摘されているように配列を通過するときです。

于 2012-07-10T14:15:52.150 に答える