1

当我编译并运行以下代码时,codeblocks(windows 7 64-bit) 会发出几个警告:-

#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 回答