在没有#include "file.h" 的情况下使用 "extern" 关键字
Using "extern" keyword without #include "file.h"
现在我正在阅读 Stephen Prata 关于 C++ 的书,并了解 extern 关键字及其用法。所以我有一个问题。我可以输入“extern int var a;”吗?不包含定义和初始化此 'a' 变量的文件?
#include <iostream>
//#include "vars.h" Not including the file with 'a' variable
using namespace std;
extern int a;
int main()
{
cout << a << endl;
return 0;
}
extern
关键字将表示该变量具有外部链接。
When a name has external linkage, the entity it denotes can be
referred to by names from scopes of other translation units or from
other scopes of the same translation unit.
来自https://eel.is/c++draft/basic.link
如果您尝试按原样 运行 上面的代码,您将收到链接器错误,因为 a
未在当前范围内定义。所以它必须从另一个翻译单元获取它,这可以在链接过程中完成。
现在我正在阅读 Stephen Prata 关于 C++ 的书,并了解 extern 关键字及其用法。所以我有一个问题。我可以输入“extern int var a;”吗?不包含定义和初始化此 'a' 变量的文件?
#include <iostream>
//#include "vars.h" Not including the file with 'a' variable
using namespace std;
extern int a;
int main()
{
cout << a << endl;
return 0;
}
extern
关键字将表示该变量具有外部链接。
When a name has external linkage, the entity it denotes can be referred to by names from scopes of other translation units or from other scopes of the same translation unit.
来自https://eel.is/c++draft/basic.link
如果您尝试按原样 运行 上面的代码,您将收到链接器错误,因为 a
未在当前范围内定义。所以它必须从另一个翻译单元获取它,这可以在链接过程中完成。