int main(){
int a = 0; //#1
int a = 1; //#2
}
考虑上面的代码,我只发现一些与问题有关的引号是,
[basic.scope.declarative]
Given a set of declarations in a single declarative region, each of which specifies the same unqualified name:
1. they shall all refer to the same entity ,or all refer to functions and function templates;
上面的引号是对为什么程序格式错误的一种解释。如果有多个声明声明了相同的名称来表示变量。如果不是,请用一些引号来更正我,这些引号解释了这种情况下格式错误的原因。
最佳答案
因为这会导致命名冲突。这两个变量引用了不同的内存位置,但是共享相同的标识符(名称),因此当您在程序中引用它们之一时,编译器将无法区分两者。
请记住,创建这样的命名冲突不是不好的做法,它违背了C++的语法,并会导致编译时错误。
关于c++ - 为什么在同一个作用域中声明多个相同的名称会导致程序格式错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61652620/