我遇到了一个有趣的问题。 在我的文件A.cpp中 我有一个定义
const int I = 1;
在我的文件B.cpp中 我宣布
extern const int I;
当我使用它时,我在编译时收到错误消息
'undefined reference to I'
如果我删除文件A中的const
,则没有消息并且编译正常。直到现在我猜测const int
和int
有不同的签名。这里发生了什么,我不明白?
答案 0 :(得分:1)
定义extern
变量时,您需要使用const
限定符。否则,它就像编译时常量一样使用。并且只在正在编译的文件中。