Cplusplus-cpp-storage-classes
C ++のストレージクラス
ストレージクラスは、C プログラム内の変数や関数のスコープ(可視性)と寿命を定義します。 これらの指定子は、変更するタイプの前にあります。 次のストレージクラスがあり、C プログラムで使用できます。
- auto
- 登録
- 静的
- 外面
- 可変
自動ストレージクラス
上記の例では、同じストレージクラスを持つ2つの変数を定義しています。autoは関数内でのみ使用できます。つまり、ローカル変数です。
レジスタストレージクラス
レジスタは、カウンタなどの迅速なアクセスを必要とする変数にのみ使用する必要があります。 また、「レジスタ」を定義しても、変数がレジスタに格納されるわけではないことに注意してください。 これは、ハードウェアと実装の制限に応じて、レジスタに格納される可能性があることを意味します。
静的ストレージクラス
static修飾子は、グローバル変数にも適用できます。 これが行われると、その変数のスコープは、それが宣言されているファイルに制限されます。
C ++では、静的がクラスデータメンバーで使用されると、そのメンバーの1つのコピーのみがそのクラスのすべてのオブジェクトで共有されます。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
外部ストレージクラス
複数のファイルがあり、他のファイルでも使用されるグローバル変数または関数を定義すると、別のファイルで_extern_が使用され、定義された変数または関数の参照が提供されます。 理解するために、_extern_は別のファイルでグローバル変数または関数を宣言するために使用されます。
extern修飾子は、以下で説明するように、同じグローバル変数または関数を共有する2つ以上のファイルがある場合に最も一般的に使用されます。
最初のファイル:main.cpp
2番目のファイル:support.cpp
ここでは、_extern_キーワードを使用して、別のファイルでカウントを宣言しています。 今、次のようにこれらの2つのファイルをコンパイルします-
これは、*書き込み*実行可能プログラムを生成し、*書き込み*を実行し、次のように結果を確認しようとします-