>>768 基本的に、C/C++ではローカル変数は全てスタックに確保される。 その場合、その確保作業は関数突入時にのみ行われる。 従って、次のようなコードはどちらも確保に伴うコストに変わりはない。 但し、後者の場合は最初のiと後のiで違うメモリを確保する可能性は、ある。 -- void func() { int i; ...; for (i = 0; i < N; ++i) ...; ...; for (i = 0; i < N; ++i) ...; } void func() { ...; for (int i = 0; i < N; ++i) ...; ...; for (int i = 0; i < N; ++i) ...; } -- # 勿論、後者もiの有効範囲が重ならないことは容易に判る訳で、真っ先に最適化の対象にはなりそうだが。