为什么我们需要外课

Why do we need extern?

本文关键字:我们 为什么      更新时间:2023-10-16

在这个问题中,我问为什么

//foo.h
namespace foo{
    int bar;
}

当我在多个文件中包含foo.h时,给了我一个链接器错误。事实证明,我需要extern int bar;来防止错误。为什么我需要extern?我不想在我想在多个翻译单元中访问的每个命名空间中的每个变量之前键入 extern。为什么int bar;不按照我的期望去做?为什么C++标准委员会坚持让我到处打字extern

Extern 表示,变量的存储声明将在其他地方进行。然后,链接器在链接时在另一个文件中查找符号。如果没有 extern,您正在告诉编译器,为全局分配一些空间。如果在多个文件中执行此操作,链接器将看到同一符号的多个实例。

为什么C++标准委员会坚持让我输入外实习生 到处?

它从来没有告诉到处写....

namespace foo{
extern "C++" {
    int bar;
    int car;
    int dar;
    int xar;
}
}