重複の可能性:
ブロックを使用して C++ の変数のスコープを管理できますか?
次のような C++ コードを見つけました。
int main(void) {
int foo;
float qux;
/* do some stuff */
{
int bar;
bar = foo * foo;
qux = some_func(bar);
}
/* continue doing some more stuff */
}
最初は、元の作成者がいくつかの関連する変数をグループ化するために中括弧を使用しているのではないかと考えていましたが、設計中のシステムには十分なメモリがないため、作成者はバーのスコープを解決し、変数をin は、囲んでいる ( foo の) スコープ全体で使用するのではなく、離れていきます。
これを行う理由はありますか?これは必要ではないように思えますが、最新のコンパイラはこれを不要にしますか?