ホームページ > バックエンド開発 > C++ > 静的変数はいつ初期化されますか?

静的変数はいつ初期化されますか?

Susan Sarandon
リリース: 2024-11-27 02:38:10
オリジナル
510 人が閲覧しました

When are Static Variables Initialized?

静的変数の割り当てと初期化

変数の割り当てと初期化に関しては、変数のスコープに応じてタイミングが異なる場合があります。グローバル変数は、前述のように、プログラムの起動時に割り当てられます。しかし、関数内で宣言された静的変数はどうでしょうか?

静的変数の割り当て

指定されたシナリオでは、静的変数 globalish は、グローバル変数と同様に、プログラムの開始時に割り当てられます。これは、静的変数の寿命がローカル変数よりも長く、定義されている関数が終了しても値が維持されるためです。

静的変数の初期化

静的変数の初期化タイミングは次のとおりです。物事が面白くなる場所。グローバル変数とは異なり、静的変数はプログラムの起動時に初期化されません。代わりに、それらが属する関数が最初に呼び出されたときにのみ初期化されます。この動作は、提供されているサンプル プログラムで明らかです。

void doSomething()
{
  static bool globalish = true; // Initialization occurs here
  // ...
}
ログイン後にコピー

この場合、globalish の初期化は、プログラムの開始時ではなく、 doSomething() が最初に実行されるときに行われます。この遅延初期化は「遅延初期化」と呼ばれます。

この遅延初期化の理由は、決して使用されない可能性のある静的変数の不必要な初期化を避けるためです。プログラムが静的変数を宣言する関数を呼び出さない場合は、初期化しないことでメモリと計算時間を節約します。

以上が静的変数はいつ初期化されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート