【发布时间】:2017-11-11 12:35:16
【问题描述】:
在 C++ 中,必须初始化引用变量。 诠释&a; // 错误
static int &b; // Error
但是
extern int &c; // No error
为什么编译器没有给出extern 说明符引用的错误?
【问题讨论】:
-
因为在外部定义中强制初始化。
-
extern位告诉编译器c在其他地方声明/定义 -
@rsp extern int &c;不是参考的定义。它只是一个没有定义的声明。
-
extern int &peach; string toad = "but our princess is in another castle"; -
考虑如果可能会发生什么。现在链接器必须弄清楚当 extern 声明和实际声明没有相同的初始化程序时要做什么。链接器没那么聪明。
标签: c++ variables reference extern