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'

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

2019 年 7 月 30 日更新

647 次浏览

开启您的职业生涯

完成课程获得认证

开始
广告