【发布时间】:2013-06-27 15:03:26
【问题描述】:
我在 C 中声明了两个同名的全局变量。 它应该给出错误,因为我们不能在同一个存储类中声明同名变量。
我在 C++ 中检查过——它给出了编译时错误,但在 C 中没有。为什么?
以下是代码:
int a;
int a = 25;
int main()
{
return 0;
}
我想大概是这个原因
Declaration and Definition in C
但在 C++ 中情况并非如此。我认为在 C++ 中,无论是在全局范围内还是在自动范围内声明变量,声明和定义都是同时发生的。
谁能再解释一下。
现在当我定义变量两次给它值两次它给我错误 (而不是一个声明和一个定义)。
int a;
int a;
int a;
int a = 25;
int main()
{
return 0;
}
【问题讨论】:
-
@H2CO3 .. 感谢您的建议,但我只是想了解其中发生了什么。但是在某些情况下,您甚至无法避免使用全局变量。