以下のコード スニペットを検討してください。
for(i=0;i<10;i+=2) // 1
for(i=0;i<2;i=i+2) // 2
使い勝手はどちらが良いでしょうか?
パフォーマンスに違いはありますか?
以下のコード スニペットを検討してください。
for(i=0;i<10;i+=2) // 1
for(i=0;i<2;i=i+2) // 2
使い勝手はどちらが良いでしょうか?
パフォーマンスに違いはありますか?
以下は0.0260015秒かかりました
for (i = 0 ; i < 10000000 ; i += 2)
そして、これには 0.0170010 かかりました
for (i = 0 ; i < 10000000 ; i = i + 2)
@MasterIDは正しいですが、「コードの最適化」を有効にすると、両方とも0.0150009秒が報告されました
あなたの質問に対する明確な答えはありません。それは、特にコンパイラがどれだけ賢いか (最適化レベルなど) と、ターゲット プラットフォームに依存します。これは C 言語の質問ではありません。言語自体は多かれ少なかれパフォーマンスを発揮するわけではありません。それは、コンパイラが何を構築するかに依存します。したがって、パフォーマンスがまったく重要な場合は、ユースケースでテストしてください...
そうでなければ、私のアドバイスは、あなたが読みやすいと感じる方法で書いてください。
最初のオプションは、少なくとも 2 番目のオプションと同じくらい高速です。ただし、コンパイルを最適化しても同じアセンブリ コードが生成されます。
どちらもまったく同じセマンティクス、つまりC言語の抽象機械でまったく同じ効果を表現します。一方が他方より遅い場合、それはコンパイラの実装品質の欠陥です。