为什么要将extern变量作为引用?

时间:2015-03-26 00:01:19

标签: c++ reference extern

我偶然发现了一些像这样的代码:

extern Space::MyClass &Global;

我知道about extern,但我的问题是,为什么有人会把&符号放在那里?它与以下内容有什么区别?

extern Space::MyClass Global;

2 个答案:

答案 0 :(得分:1)

不同之处在于,您发现的那个必须被声明为引用其他内容。可能它是条件编译配置技巧的一部分。

答案 1 :(得分:1)

extern必须与变量的实际定义相匹配。

据推测,其他单位之一包含:

 Space::MyClass &Global = whatever....;

这意味着您必须使用extern Space::MyClass &Global;进行提取。 extern声明中的类型不匹配会导致未定义的行为(无需诊断)。