下面的代码片段编译( 演示 ): struct A{ int i = 10; }; int main() { struct A{ int i = 20; }; struct A; struct A a; } 但是这不是: struct A{ int i = 10; }; int main() { // struct A{ int i = 20; }; struct A; struct A a; } 我可以看到,答案可能是由标准中的这些段落给出的: [basic.lookup.elab] / 2和[basic.scope.pdecl] […]