【发布时间】:2014-04-16 12:08:05
【问题描述】:
参考下面的代码:
#include <stdio.h>
int a;
int a;
int main()
{
int b;
int b;
return 0;
}
为什么编译器 (GCC) 抱怨只重新声明变量“b”而不是“a”?
redef.c:在函数'main'中: redef.c:19:错误:重新声明“b”而没有链接
redef.c:18: 错误:'b' 的先前声明在这里
【问题讨论】:
-
只是为了排除一个完全挑剔的细节:这可能是第一个“a”是拉丁文而第二个“a”是西里尔文的 unicode 问题吗?
-
是的。这里提到的另一个问题或多或少涉及范围的主题。我的兴趣还在于编译器没有对变量“a”说“重新声明”
-
@hacks,谢谢!正是这个问题。
标签: c