在没有#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 未在当前范围内定义。所以它必须从另一个翻译单元获取它,这可以在链接过程中完成。