1. ホーム
  2. c++

[解決済み] ループ内で変数を宣言することにオーバーヘッドはあるのか?(C++)

2022-04-24 22:46:04

質問

ただ、このようなことをした場合、速度や効率が落ちることはないのでしょうか?

int i = 0;
while(i < 100)
{
    int var = 4;
    i++;
}

を宣言しています。 int var を100回繰り返す。 ありそうな気がするのですが、どうでしょう。代わりにこれをやった方が実用的/高速なのでしょうか。

int i = 0;
int var;
while(i < 100)
{
    var = 4;
    i++;
}

とか、速度的・効率的に同じなのか?

どのように解決するのか?

ローカル変数のスタック領域は、通常、関数スコープで確保されます。そのため、ループ内ではスタックポインタの調整は行わず、ただ4つを var . したがって、この2つのスニペットは同じオーバーヘッドを持ちます。