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