2017-01-21 4 views
-1

私はグローバル変数とexternキーワードに直面しているC言語を学んでいます。私はこのサイト(Global variable in C are static or not)上でそれらについて読むとグローバル変数はデフォルトでexternですか?はいの場合、デフォルト値 "0"を持つ理由は何ですか?

グローバル変数はデフォルト

でexternでいることがわかった。しかし、私は、グローバル変数のデフォルト値は0であることを知っています。
externキーワードの変数が宣言されていて、定義されていないのはどうやってできますか。

+1

あなたはこれをどこから読んだのですか? –

+0

http://stackoverflow.com/questions/4239834/global-variable-in-c-are-static-or-not @RobertColumbia – Srshti

+0

関連項目[Cでソースファイル間で変数を共有するには、どうすれば 'extern'を使用しますか?] (http://stackoverflow.com/questions/1433204/)。 –

答えて

1

このように、externキーワードを持つ変数は定義されていないと宣言されているので、どのようにできるか混乱しています。

  • グローバル変数は、デフォルトではexternにしている - 彼ら(単に他のソースファイルすることができます)他のtranslation unitで使用できることを意味しています。
  • これらのソースファイルに対応するextern宣言がない限り、グローバル変数は他のソースファイルから自動的に使用できません。
  • externキーワードは、の宣言のみであるため、初期化されていません。したがって、元のソースファイルからのグローバル変数の自動値(0)は、自分自身の定義の時点で取得されます。
  • 元のソースファイル内に1つの定義だけが存在し、他のソースファイルにはextern個の宣言があることに注意してください。
関連する問題