
【6日でできるC言語入門】ソースコード分割
Visual Studio 2022でソースコードを分割しよう
C言語でプログラムを開発していると、ソースコードが長くなりがちです。
Visual Studio 2022 では、機能ごとにファイルを分けて管理することで、プログラムを見やすく、保守しやすくできます。ここでは、ヘッダファイル(.h) と ソースファイル(.c) を用いた、ソースコード分割の基本的な方法と操作手順を、実際の操作画面をイメージしながら解説します。

1.プロジェクトの準備と基本操作
1.1. 新しいC言語プロジェクトの作成
1.Visual Studio 2022を起動します。
2.「新しいプロジェクトの作成」を選択して「次へ」ボタンをクリックします。

3.「空のCプロジェクト」または「空のプロジェクト」を選択し、プロジェクト名(例:MultiFileSample)を入力して「作成」ボタンをクリックしてプロジェクトを開始します。

1.2. メインのソースファイルを追加
1.ソリューションエクスプローラーで「ソースファイル」フォルダーを右クリックし、「追加」→「新しい項目」を選択します。

2.「FileName.cpp」を「main.c」に変更し「追加」をクリックします。

1.3. ヘッダーファイルの役割とは?
ヘッダーファイルの役割
C言語のヘッダーファイル(拡張子 .h)は、主に次のような役割を持っています。
| 役割 | 説明 |
|---|---|
| 関数のプロトタイプ宣言 | 他のファイルから呼び出したい関数の「型」や「引数の型」を事前に知らせる。 |
| マクロや定数の定義 | #define などで定数や便利な式を定義する。 |
| 構造体・共用体・列挙体の定義 | 複数のファイルで同じ型情報を共有するために利用 |
| インクルードガードの設定 | 同じヘッダが複数回読み込まれてもエラーが起きないようにする。 |
ポイント
ヘッダーファイルを使うことで、「どのファイルからでも同じ関数や型、定数を安全に使う」ことができるようになります。
特に複数ファイルを使う中規模以上の開発や、複数人によるチーム開発で不可欠な仕組みです。
ヘッダーファイルの定義方法
ヘッダーファイルには主に関数のプロトタイプ宣言やマクロ定義、構造体定義などを書きます。
また、「インクルードガード」を必ず設定しましょう。
例:multiply.h の定義
インクルードガード
同じヘッダファイルが複数回読み込まれても、一度だけしか内容が展開されません。
これにより多重定義によるコンパイルエラーを防ぎます。
#ifndef _MULTIPLY_H_ // インクルードガード(1行目)
#define _MULTIPLY_H_ // インクルードガード(2行目)
// ここにプロトタイプ宣言
int multiply(int, int); // 2つのint値を掛け算する関数
#endif // _MULTIPLY_H_ // インクルードガード(終了)ヘッダーファイルを使う流れ
- ヘッダファイル(.h) に関数のプロトタイプ宣言を書きます。
- ソースファイル(.c) で、そのヘッダファイルを
#includeします。 - 関数の本体(処理)は、通常ソースファイル側に記述します。
具体例
- multiply.h(プロトタイプ宣言)
- multiply.c(関数の本体)
- main.c(
#include "multiply.h"で関数を利用)
補足:どんな内容を書けばよい?
| ヘッダファイルに書くもの | 具体例 |
|---|---|
| 関数プロトタイプ宣言 | int add(int, int); |
| 定数の定義 | #define MAX_VALUE 100 |
| 構造体の定義 | typedef struct { int x; int y; } Point; |
main.cや他の.cファイルで使いたい宣言は、できるだけヘッダファイルにまとめておくと、再利用性が高まり、管理も楽になります。
ポイント
- ヘッダファイルは「関数の宣言」や「型情報」、「マクロ」などをまとめて管理するファイルです。
- インクルードガードを付けて多重読み込みを防ぎます。
2.ヘッダファイルとソースファイルの追加・記述
2.1. main.cの記述例
main.c ではヘッダファイルをインクルードし、multiply関数を利用します。
#include <stdio.h>
#include "multiply.h"
int main(void) {
int x = 4, y = 7;
int result = multiply(x, y);
printf("計算結果:%d × %d = %d\n", x, y, result);
return 0;
}2.2. ヘッダファイルの追加(multiply.h)
1.ソリューションエクスプローラーで「ヘッダーファイル」フォルダーを右クリックし、「追加」→「新しい項目」を選択します。
2.「ヘッダーファイル(.h)」を選び、「multiply.h」と入力し、[追加]をクリックします。
multiply.hには、関数のプロトタイプ宣言とインクルードガードを記述します。
#ifndef _MULTIPLY_H_
#define _MULTIPLY_H_
int multiply(int, int);
#endif // _MULTIPLY_H_2.3. サブのソースファイルの追加(multiply.c)
1.「ソースファイル」フォルダーを右クリックし、「追加」→「新しい項目」→「C++ファイル(.cpp)」を選び、「multiply.c」と入力します。
2.multiply.c には、ヘッダファイルをインクルードし、関数本体を記述します。
#include "multiply.h"
int multiply(int a, int b) {
return a * b;
}3.ビルドと実行
3.1. ビルド(コンパイル)の方法
1.「ビルド」 メニューから「ソリューションのビルド」を選択します。

2.ビルドが成功すると、「main.c」「multiply.c」の両方がコンパイルされ、正しくリンクされます。
2:28 でビルドが開始されました...
1>------ ビルド開始: プロジェクト: MultiFileSample, 構成: Debug x64 ------
1>main.c
1>multiply.c
1>コードを生成中...
1>MultiFileSample.vcxproj -> C:\Users\joeac\source\repos\MultiFileSample\x64\Debug\MultiFileSample.exe
========== ビルド: 成功 1、失敗 0、最新の状態 0、スキップ 0 ==========
=========== ビルド は 2:28 で完了し、00.874 秒 掛かりました ==========3.2. 実行方法
1.「デバッグ」 メニューから「デバッグなしで開始」を選択します。

2.結果ウィンドウに、次のような出力が表示されます。
計算結果:4 × 7 = 284.ソースコード分割のポイントと注意点
| 項目 | 説明・ポイント |
|---|---|
| インクルードガード | ヘッダファイルでの多重読み込み防止 |
| #include の使い方 | 必要な場所で適切にヘッダファイルを読み込む。 |
| 関数のプロトタイプ宣言 | ヘッダファイルで行い、実装は.cファイルで行う。 |
| ファイルごとの役割分担 | 複数人開発や保守性向上に有効 |
まとめ
- Visual Studio 2022では、ソースファイルとヘッダファイルを使い分けてコードを分割することで、プログラムが大きくなっても管理しやすくなります。
- 各ファイルはソリューションエクスプローラーから追加・編集ができます。
- 関数をヘッダファイルとソースファイルで適切に分けて記述し、ビルドして正しく動作することを確認しましょう。
