是否可以在C中的相同范围内声明两个或多个具有相同名称的变量。例如:
#include <stdio.h>
int main()
{
int a;
int a;
int a;
}
答案 0 :(得分:3)
这是不可能的。
从标准, 6.7声明(强调我的):
如果标识符没有链接,则标识符(在声明符或类型说明符中)的不超过一个声明具有相同作用域且名称空间相同的 < / strong>,...
至于无链接, 6.2.2标识符链接(强调我的):
以下标识符无链接:声明为对象或函数以外的任何标识符;声明为函数参数的标识符;没有存储类说明符extern声明的对象的块范围标识符。
例如,这在文件范围内有效(具有内部或外部链接)。
int a;
int a;
int a;
但是,这里所有声明都引用同一个对象。