4
下面的代码可以编译:为什么“#define A”会干扰“namespace A {}”?
namespace A{
int i;
}
namespace B{
int i;
}
int main(){ return 0; }
但是,下面的代码无法编译:
#define A
#define B
namespace A{
int i;
}
namespace B{
int i;
}
int main(){ return 0; }
该错误信息是
error: redefinition of 'int {anonymous}::i'
后我定义A
和B
为什么名字命名空间变成匿名的?
使用的编译器:gcc-4.9.3。
这是确切的原因,所有的大写常量应避免 – Slava