C语言中全局变量的重新表述

考虑下面两个程序:

null

// Program 1
int main()
{
int x;
int x = 5;
printf ( "%d" , x);
return 0;
}


C语言输出:

redeclaration of ‘x’ with no linkage

// Program 2
int x;
int x = 5;
int main()
{
printf ( "%d" , x);
return 0;
}


C语言输出:

5

在C语言中,第一个程序编译失败,但第二个程序运行良好。在C++中,两个程序都不能编译。

C允许在第一次声明没有初始化变量时再次声明全局变量。

下面的程序在两种C语言中都失败了,因为全局变量在第一次声明中被初始化。

int x = 5;
int x = 10;
int main()
{
printf ( "%d" , x);
return 0;
}


输出:

 error: redefinition of ‘x’

这篇文章是有贡献的 阿比拉蒂 。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享