考虑下面两个程序:
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