Тема: Клас пам'яті extern, оголошення зміної
Я не розумію як правильно оголошувати зміну класу пам'яті extern
файл Source.cpp
#include <conio.h>
#include <iostream>
#include "Header.h"
int main()
{
    f();
    std::cout << num;
    num = 6;
    std::cout << num;
    getch();
    return 0;
}файл Source1.cpp
#include "Header.h"
int num;
void f()
{
    num = 8;
}файл Header.h
#pragma once
extern int num;
void f();extern - зовнішня (глобальна) змінна. Зовнішні змінні доступні скрізь, де описані, а не тільки там, де визначені. Включення ключового слова extern дозволяє функції використовувати зовнішню змінну, навіть якщо вона визначається пізніше в цьому або іншому файлі.
я написав extern int num; тобто оголосив її глобальною для всіх файлів
то навіщо мені ще раз її оголошувати в Source1.cpp як звичайну зміну а в Source.cpp не оголошувати, звідки мені дізнатися де її потрібно повторно оголосити а де ні ?
 Не читайте її, вона шкідлива )) В стандарті я нічого не знайшов по типу "memory class extern". Скоріш за все дві дамочки в своїй книзі щось собі нафантазували, не розібравшись в темі, а хтось вирішив з цього написати статтю.