Не могу понять объявление № 3 в Примере [basic.link] / 6 C ++ 14

[Basic.link] / 6

Имя функции, объявленной в области видимости блока, и имя переменной, объявленной в области видимости блокаextern декларация имеет связь. Если естьвидимый объявление сущности со связью, имеющей то же имя и тип, игнорируя сущности, объявленные вне самой внутренней охватывающей области пространства имен, объявление области блока объявляет ту же сущность и получает связь предыдущей декларации. Если существует более одного такого совпадающего объекта, программа является некорректной. В противном случае, если соответствующий объект не найден, объект области блока получает внешнюю связь. [Пример:

static void f();
static int i = 0; // #1
void g() {
    extern void f(); // internal linkage
    int i; // #2 i has no linkage
    {
        extern void f(); // internal linkage
        extern int i; // #3 external linkage
    }
}

Есть три объекта с именемi в этой программе. Объект с внутренней связью, введенный объявлением в глобальной области видимости (строка # 1), объект с автоматической продолжительностью хранения и без связи, введенный объявлением в строке # 2, и объект сстатическая продолжительность хранения и внешняя связь введены декларацией в строке № 3. - конец примера]

У меня есть два комментария об этом абзаце:

static int i = 0;объявление в глобальной областине видимый внутри блока, содержащего объявлениеextern int i; (# 3). Поэтому мы можем только сказать, что это последнее объявление имеет внешнюю связь, то есть мы не можем связать его с объявлением # 1.В противном случае, если декларацияstatic int i; объявление # 3 считается видимым, чем в соответствии с текстом в параграфе, объявление области видимости блока объявляет ту же сущность и получает связь предыдущего объявления, то есть внутреннюю связь, а не внешнюю связь, как указано в Пример.

Что мне здесь не хватает?

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

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