extern

変数は、宣言した場所でしか使えません。
例えば下のように、ヘッダーで宣言した変数はcppでは使えません
/*--------------Header.hの中身----------------*/
#pragma once

// 変数の宣言
int var;

/*-------------Source.cppの中身----------------*/
// cppは何も書かない

/*-------------main.cppの中身--------------------*/
#include <stdio.h>
#include "Header.h"

int main(){

	var = 0;   // Header.hで宣言したvarに代入【エラー】

	printf("%d\n", var);	// varを表示【エラー】

	return 0;
}
上のプログラムを実行すると、エラーを吐いて実行できません。

しかし、ファイル分けしてソフトウェアを作成すると、他のヘッダーで宣言した変数を使用したいときが必ず出てきます。
そのときは extern変数 を使います

extern変数

extern変数は下のように使います。
/*--------------Header.hの中身----------------*/
#pragma once

// externを付けて変数の宣言
extern int var;

/*-------------Source.cppの中身----------------*/
// extern変数を初期化(ここではexternを付けない)
int var = 0;

/*-------------main.cppの中身--------------------*/
#include <stdio.h>
#include "Header.h"

int main(){

	var = 0;   // Header.hで宣言したvarに代入

	printf("%d\n", var);	// varを表示

	return 0;
}
上のプログラムであれば、エラーを吐きません。

練習問題

次のようなプログラムを書いてください。
第1問
 Header.hとSource.cppを作り、Header.hの中で変数を3つ宣言して、mainで表示する。