可能重复:
在 C 中允许重定义,但在 C++ 中不允许?
#include<stdio.h>
int i;
int i;
int main()
{
// int i;
// int i;
printf("%d\n",i);
return 0;
}
~
上面的代码运行没有给出任何错误gcc -Wall -Werror demo.c -o demo
但是当我取消注释local
i
变量时global
i
,它会给我错误。
In function ‘main’:
demo.c:7:6: error: redeclaration of ‘i’ with no linkage
demo.c:6:6: note: previous declaration of ‘i’ was here
这里的本地全局概念是什么?,任何人都请解释一下。