1

次のコードをコンパイルして実行すると、コードブロック (Windows 7 64 ビット) でいくつかの警告が表示されます:-

#include<stdio.h>
#include<stdlib.h>
extern int i=10;     //Warning

int main()
   {
       extern int i;
       printf("%d\n",i);
   }

int i;

警告は次のとおりです。

3 行目: 警告: 'i' が初期化され、'extern' が宣言されました [デフォルトで有効]

この警告の説明はありますか?

4

2 に答える 2

3

こちらからお世話になりました

それは有効な構文です。問題はextern、オブジェクトが同じコンパイル単位で初期化されるため、キーワードが冗長であることです。

于 2013-09-05T19:40:45.190 に答える
1

それは普通です « extern i ; » は « 別のファイルのどこかに変数 i があります (すでに初期化されています)。»、そしてあなたはそれに新しい価値を与えようとしています!

« extern » キーワードを見たほうがいいと思います。

于 2013-09-05T19:41:39.210 に答える