постоянный и глобальный

Этот код выдаст ошибку в C ++

// Foo.cpp
const int Foo = 99;

// Main.cpp
extern const int Foo;
int main()
{
    cout << Foo << endl;
    return 0;
}    

Многие объясняют, что глобальное const имеет внутреннюю область действия и является статическим по умолчанию.

Решение этой проблемы:

    //Foo.h
    extern const int Foo; 

    // Foo.cpp
    #include "Foo.h"
    const int Foo = 99; 

    // Main.cpp
    #include "Foo.h"
    int main()
    {
       cout << Foo << endl;
    }

Раньше я думал, что extern используется, чтобы сообщать компилятору, что память для идентификатора уже выделена где-то в других файлах.
Применяя ту же логику к приведенному выше коду, кто-нибудь может объяснить, что здесь происходит, или extern имеет другое значение в c ++ ??
введите описание ссылки здесь
Также рассмотрите эту страницу, это портит мне всю интуицию ..

Ответы на вопрос(2)

Ваш ответ на вопрос