在同一范围内声明两个或多个具有相同名称的变量

时间:2018-03-17 10:42:02

标签: c variables scope

是否可以在C中的相同范围内声明两个或多个具有相同名称的变量。例如:

#include <stdio.h>

int main()
{
    int a;
    int a;
    int a;
}

1 个答案:

答案 0 :(得分:3)

这是不可能的。

从标准, 6.7声明(强调我的):

  

如果标识符没有链接,则标识符(在声明符或类型说明符中)不超过一个声明具有相同作用域且名称空间相同的 < / strong>,...

至于无链接 6.2.2标识符链接(强调我的):

  

以下标识符无链接:声明为对象或函数以外的任何标识符;声明为函数参数的标识符;没有存储类说明符extern声明的对象的块范围标识符

例如,这在文件范围内有效(具有内部或外部链接)。

int a;
int a;
int a;

但是,这里所有声明都引用同一个对象。