在C中重新声明全局变量

在这里,我们将看到在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'

因此,我们可以看到,只有在未初始化全局变量的情况下,我们才能重新声明全局变量。