2012-06-07 25 views

答えて

7

ありません!
グローバル変数と静的変数は、C標準で規定されているようにコードが明示的にそれを行わない場合、暗黙的に初期化されます。
つまり、グローバル変数と静的変数は初期化されずに残されません。

+0

既定です。私はそれらを明示的に初期化したい。静的アナライザーも問題ありません。 – Kamath

+0

@AUZKamath:No。標準では、グローバル変数をデフォルトで初期化する必要があります。gccは初期化されていないグローバル変数に対して警告や診断を提供しません。 –

3

いいえ.gccはすべてのグローバル変数と静的変数を自動的に "0"に初期化するためです。

5

6.9.2外部オブジェクト定義

セマンティクス

オブジェクトの識別子の宣言がスコープと初期化ファイルがある場合、 宣言は外部にあります識別子の定義。

初期化せずにスコープファイル持つオブジェクトに対する識別子の宣言、およびストレージ・クラス指定せずに、または静的ストレージクラス指定子で は、 仮定義を構成します。翻訳単位に 識別子の仮定義が1つ以上含まれていて、その翻訳単位にその識別子の外部定義が含まれていない場合、その動作はまさに翻訳単位に 識別子のファイルスコープ宣言が含まれているかのようです。 (標準の)上記2つの句は、ファイルスコープ(グローバル)オブジェクトは常に初期化されることを保証する初期化子0

に等しい

と変換ユニットの端部のような複合型、。

関連する問題