如果我将i
声明为全局变量两次,那么它可以正常工作:
#include <stdio.h>
int i;int i;
int main(void)
{
printf("%d",i);
return 0;
}
但如果我在当地宣布(两次)
,那就不行了#include <stdio.h>
int main(void)
{
int i;int i;
printf("%d",i);
return 0;
}
错误
error: redeclaration of ‘i’ with no linkage
此外,如果在第一种情况下我将i初始化为某个值i=1
,那么它也会给出错误error: redefinition of ‘i’
为什么会出现这种行为?
谢谢!