我有以下C代码,并期望它会抛出“变量重复声明”的错误,但实际上没有出错。
#include <stdio.h>
int i;
int i;
int main()
{
printf("%d",i);
return 0;
}
现在的输出结果是0
,但为什么呢?
还有一件事,下面的代码会报错,预期是什么?
#include <stdio.h>
int main()
{
int i;
int i;
printf("%d",i);
return 0;
}
O/p 出错,显示 i 的重新声明
i
的定义出现在函数内部(它们不出现在文件作用域),并且不是试探性定义。 - pmgexternal
关键字:external int i;
,但最好还是在文件作用域中指定这样的声明。 - pmg