学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

C++プログラミング入門その20 モジュールと分割コンパイル1

>>この記事には書き直した新しいページがあります。<<


<<前  [TOP]  次>>


Visual Studioで新規プロジェクトを作り、以下の2つのcppファイル、1つのヘッダーファイルを作成して下さい。


cppファイルは「ソースファイル」フォルダに、.hファイルは「ヘッダーファイル」フォルダに作成すると良いでしょう。





【Bunkatsu1.cpp】

/* file : Bunkatsu1.cpp */

#include <iostream>
#include "head.h"

void main() {

	    std::cout << "test1 " << test1(3.0, 4.0) << std::endl;
		std::cout << "test2 " << test2("string") << std::endl;
}



【Bunkatsu2.cpp】

/* file : Bunkatsu2.cpp */

#include<iostream>
#include "head.h"

float test1(float x, float y) {

	return x*x*y*y;
}

char *test2(char *s) {
	return s+1;
}



【head.h】

/* header file : head.h */

float test1(float x, float y);
char *test2(char *s);



C言語のプログラムは機械語に翻訳された後に、必要なライブラリ(#includeなど)とリンクされることによって実行可能な形式となります。
これらの過程は厳密に前者がコンパイルと呼ばれ、後者がリンクと呼ばれています。
リンク自体はライブラリのリンクに限らず、開発者が自由に行えるようになっています。
つまり、開発者がプログラムを分割して、個別にコンパイルし、できたオブジェクトをリンクすることも可能になっています。
この分割されたプログラムの断片をモジュールといいます。


プログラムソースを二つに分けて開発すると、両方のプログラムソースの先頭に宣言が必要となります。
関数宣言は、リンクさせたいモジュールの先頭にコピーすることになります。
たくさんの関数やモジュールがある場合は、この記述が面倒なので、ヘッダファイルというファイルにまとめて記述し、includeで読み込ませた方が大変便利です。
ヘッダファイル名は以下のようにします。

ファイル名.h

これをプログラムソースに取り込むにはプログラムソースの先頭に以下のように記述します。

include ”ヘッダファイル名”

このように、includeでヘッダファイル名をダブルコーテーション(””)で囲みます。
この記述をすべてのモジュールに宣言します。


分割コンパイル、ビルド(リンク)の方法について説明します。


順番として、まずヘッダファイルを作成します。
次にmain関数のある関数を作成、コンパイルします。


指定のファイルのみコンパイルするには、ファイル名で右クリックして「コンパイル」を選択します。





このとき、main関数のあるプログラムソースのファイル名がクラス名になります。


次に、残りのモジュールを先ほど作成したクラス名のワークスペースでコンパイルしてください。
すべてのモジュールのコンパイルが終わったらビルド(リンク)してください。
エラーがなくビルドが終了したら、実行できます。


サンプルプログラムをビルドしてデバッグしてみましょう。





<<前  [TOP]  次>>