グローバル変数はC static
またはextern
ですか?
グローバル変数がデフォルトでは静的な場合は、1つのファイルでグローバル変数にアクセスできることを意味しますが、異なるファイルでグローバル変数を使用することもできます。
これは、デフォルトでexternストレージがあることを意味しますか?Cのグローバル変数は静的かどうか?
答えて
ストレージクラス(つまり、extern
またはstatic
のキーワード)を指定しないと、デフォルトではグローバル変数に外部リンケージが設定されます。 C99標準から:識別子
3の
§6.2.2リンケージ)オブジェクトまたは関数のファイルスコープ識別子の宣言は、ストレージクラス指定
static
、識別子が含まれている場合内部結合を有する。5)関数の識別子の宣言にストレージクラス指定子がない場合、そのリンケージは、ストレージクラス指定子
extern
で宣言されているかのように正確に決定されます。オブジェクトの識別子の宣言にファイルスコープがあり、ストレージクラス指定子がない場合、そのリンケージは外部にあります。
あなたがextern
キーワードを指定しない場合でも、彼らはまだ同じ変数のextern
宣言を持つことができるので、だから、グローバルはまだ、他のソースファイル(いわゆる翻訳単位)によってアクセスすることができます。 static
キーワードを使用して内部リンケージを指定すると、別のソースファイル内の同じ変数名のextern
宣言が存在する場合でも、別の変数を参照します。 Cにおいて
、初期または任意のストレージ・クラス指定を持たないグローバル変数は、静的記憶期間と外部リンケージと変数の仮定義です。
翻訳単位では、すべての仮定義と非仮定義(例えば、初期化子を含む宣言からのもの)は、変数の単一の定義に集約されます。複数の翻訳単位で同じ変数の定義を持つことは許可されていませんが、共通の変数、つまり複数の翻訳単位で同じ変数の仮定義を許可することは共通の拡張です。外部リンケージを制限するためにCで
グローバル変数のデフォルトのextern ...(IE)によって、彼らは外部リンケージを持っている...
静的な場合は、「静的」ストレージクラス指定子は..グローバル変数のために使用することができます指定子はまた
- 1. CとC++の静的グローバル変数とexternグローバル変数
- 2. 目的C - グローバルな静的変数はどこでdeallocしますか?
- 3. 静的/グローバル変数、次のように私は私のC++クラスのグローバル変数を定義しているC++
- 4. クラスの静的関数は、グローバル静的変数にアクセスできますか?
- 5. 静的変数はグローバル変数ですか?
- 6. C++静的ローカル関数とグローバル関数
- 7. 動的リンクされた共有ライブラリのグローバル変数と静的変数はどうなりますか?
- 8. Objective Cのインスタンス変数が静的/クラス/グローバル変数のように動作するのはなぜですか?
- 9. Javaの非静的グローバル変数
- 10. TypeScript:グローバル静的変数のベストプラクティス
- 11. 静的データメンバーとグローバル変数の差
- 12. Cで同じアプリケーションドメイン内のグローバル静的変数の問題#
- 13. C++静的変数。
- 14. Cコードベースでグローバル/静的変数を見つけるツール
- 15. JavaScriptのグローバル静的関数
- 16. C#の静的変数
- 17. グローバル変数、定数、変数、静的変数、および非静的変数の相違点
- 18. C++の静的グローバル識別子と静的グローバル識別子の違いは何ですか?
- 19. クラスの静的データメンバと静的関数メンバは、関数とグローバル変数の静的変数と同じ場所に格納されていますか?
- 20. 静的なクラスとメソッドは悪いですか?グローバル変数はぶつかる?
- 21. C#の静的変数と動的変数の違いは何ですか?
- 22. C++:静的メンバー変数
- 23. アプリワイド静的変数C#コンソールアプリケーション
- 24. 静的変数がcでどのように動作するか
- 25. 目的C - カテゴリ内の静的変数
- 26. C++メンバ関数のアクセスプライベート静的変数?
- 27. 静的メソッド内のローカル変数は、静的ていますか?
- 28. 静的メソッドかどうか
- 29. グローバル変数に静的クラスを使用するか、静的プロパティを使用するだけですか?
- 30. グローバル静的変数または共有設定android
..「静的」を指定
は、プログラムの使用状況によって異なります。..関連する使用、その変数がスコープを提出しました..ですあなたは「のextern」キーワードを使用して他のファイルにリンクすることはできません:暫定的な定義を記述するセクション6.9.2。そのセクションの§4はファイルスコープ変数の複数の定義がどのように相互作用するかを明示的に示しています – Christoph
Thanx sir ........ "static extern varx"とは何ですか? – Mishthi
@Mishthi:静的変数と外部変数の両方を意味するのですか?私はそれが不可能ではないかと思います。 –