人は "shift 1 bit left"を書くのではなく、 "multiple by 2"と書いています。読みやすく、コンパイルが最適化を行うのに十分スマートです。コンパイラの最適化の限界は何ですか?どのように賢いですか?
一般的に何がコンパイルされ、開発者は(コードの可読性のために)行うべきではありませんか?私はいつも数字の操作がはるかに速いと言って、5〜6年前に読んだので、string == ""
の代わりにstring.length == 0
と書く。これは本当ですか?
それとも、ほとんどのコンパイラは、以下の十分にスマートに変換することになります。
int result = 0; for (int i = 0; i <= 100; i++) { result += i; }
へ:int result = 5050;
?
あなたの好きな「最適化」は何ですか?ほとんどのコンパイルではできないものは何ですか?
誰でもコンパイラが実行できる最適化を列挙することはできません。 (たくさんあります)もっと具体的な例がありますか? – Mysticial
どのコンパイラ? – SLaks
申し訳ありませんが、私の質問は、特定のコンパイラや特定のアルゴリズムではないと思います。私は一般的な質問をしたい、あなたのような偉大な開発者からいくつかのクールなコードを学びたいと思っています。 – user1032613