在这里,我们将看到在C中重新声明全局变量的情况。C是否支持这一点。让我们看下面的代码来了解它。
#include <stdio.h> int main(){ int a; int a = 50; printf("a is : %d\n", a); }
输出结果
[Error] redeclaration of 'a' with no linkage
因此,我们可以看到我们无法重新声明局部变量。现在让我们看一下全局变量的输出。
#include <stdio.h> int a; int a = 50; int main(){ printf("a is : %d\n", a); }
输出结果
a is : 50
因此,在这种情况下,全局变量不会产生任何错误。现在让我们看看第一个声明是否持有一个值,那么可以重新声明它吗?
#include <stdio.h> int a = 10; int a = 50; int main(){ printf("a is : %d\n", a); }
输出结果
[Error] redefinition of 'a'
因此,我们可以看到,只有在未初始化全局变量的情况下,我们才能重新声明全局变量。