c语言变量重复申明
#include<stdio.h>
int i;
int i;
int main()
{
printf("hello,world\n");
return 0;
}
代码可以编译通过运行,不会报错,可是这不是重复申明吗?
[解决办法]
定义只能一次,声明可以多次
在C++中这种写法是定义必定报错
在C中这这种写法可以是声明也可以是定义,所以不报错
[解决办法]
我记得好象是这样:
C语言里int i;等同于:extern int i;
都是声明
int i = 0;
才是定义
由于没有定义,最后编译器会把一个声明转为定义。
好久不用C了,记不太清,可能不正确。