为什么重新声明全局变量是有效的,但不是本地变量的本地变量?

时间:2014-03-16 18:01:01

标签: c global-variables local-variables redefinition redeclaration

如果我将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’

为什么会出现这种行为?

谢谢!

0 个答案:

没有答案