为什么要使外部变量成为引用?
Why make a extern variable a reference?
我偶然发现了一些这样的代码:
extern Space::MyClass &Global;
我知道 about extern,但我的问题是,为什么有人会把 & 号放在那里?这和下面的有什么区别?
extern Space::MyClass Global;
不同之处在于,您找到的那个必须声明为引用其他东西。可能是条件编译配置技巧的一部分。
extern
必须匹配变量的实际定义。
推测其他单位之一包含:
Space::MyClass &Global = whatever....;
这意味着你必须用extern Space::MyClass &Global;
来拾取它。 extern
声明中的类型不匹配会导致未定义的行为(不需要诊断)。
我偶然发现了一些这样的代码:
extern Space::MyClass &Global;
我知道 about extern,但我的问题是,为什么有人会把 & 号放在那里?这和下面的有什么区别?
extern Space::MyClass Global;
不同之处在于,您找到的那个必须声明为引用其他东西。可能是条件编译配置技巧的一部分。
extern
必须匹配变量的实际定义。
推测其他单位之一包含:
Space::MyClass &Global = whatever....;
这意味着你必须用extern Space::MyClass &Global;
来拾取它。 extern
声明中的类型不匹配会导致未定义的行为(不需要诊断)。