C における static の役割
C では、static キーワードは、変数、関数、クラスのスコープとライフサイクルを制御するために使用されます。
変数
- 関数内で静的に宣言された変数は、静的ローカル変数と呼ばれます。
- 静的ローカル変数は、関数が初めて実行されるときに初期化され、関数のライフサイクル全体にわたって残ります。
- 静的ローカル変数の値は、関数がスコープに戻ったりスコープから抜け出したりしても、変更されません。
関数
- クラスの外で静的に宣言された関数は、静的メンバー関数と呼ばれます。
- 静的メンバー関数は、クラスの静的メンバー変数にのみアクセスでき、非静的メンバー変数にはアクセスできません。
- 静的メンバー関数は、このポインターでは動作できません。
クラス
- クラス宣言で static キーワードを使用して、静的メンバー変数を作成します。
- 静的メンバー変数は、クラスのインスタンスが作成されない場合でも、プログラムのライフサイクル全体を通じて存在します。
- 静的メンバー変数は、クラスのすべてのインスタンス間で共有されます。
その他の使用方法
-
型のインライン化(型のインライン化): 静的メンバー関数をクラス定義にインライン化して、性能を上げる。
-
関数のインライン化: 静的関数を、それを呼び出す関数にインライン化して、関数呼び出しのオーバーヘッドを回避できます。
-
定数定義: constexpr 式で static キーワードを使用すると、実行時でも既知の定数が作成されます。
概要
- static キーワードは、C の変数、関数、クラスのスコープとライフサイクルを制御できます。
- 静的ローカル変数は、関数のライフサイクル全体を通じて変更されません。
- 静的メンバー関数は、クラスの静的メンバー変数にのみアクセスでき、this ポインターでは操作できません。
- 静的メンバー変数は、クラスのすべてのインスタンス間で共有されます。
- static キーワードは、型のインライン化、関数のインライン化、定数定義などの他の目的に使用されます。
以上がC++ における static の役割の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。