ちぇりーの館

1−1 C言語プログラミング小ネタ講座 
コンパイル時間の短縮



このコーナーでは、実際にプログラムを組む上で役に立つ情報を解説します。第一回目は、『コンパイル時間の短縮』です。
大規模なプログラムでコードが数千、数万行にも及ぶ場合、コンパイル処理に時間がかかります。私が、前に作成したゲームのプログラムで、 まったく対策を講じなければ、約5万行で30分以上かかります。 そこで、コンパイル時間短縮のテクニックとして、 一度リンクを行ったソースファイルは、何回も参照しないようにします。これだけでも、何もしないよりは相当早くなります。

・構文

#ifndef XXXXX
#define XXXXX
		………
#endif

これは、ヘッダーファイルで宣言されたプログラムを二重に処理させないためによく使われる手法です。 #ifndefとは、『XXXXXが定義されていない場合は処理を行い、XXXXXが定義されている場合には処理を行わない』 という意味になります。では、そのXXXXXはどこで宣言されるかと言うと、#ifndefの直後で行います。 まあ…、別に直後でなくてもいいのですが、慣例としてこのように書きます。最後に#ifndefの有効範囲の終了を 示す#endifをソースの最後に書いて完成です。これは、実際の開発現場では多くの人が実践している手法なので覚えておいて、 損はないと思います。

≪ サンプル ≫

≪ GWsystem.h ≫
//---------------------------------
#ifndef __GWsystem_Header_
#define __GWsystem_Header_

	#include "windows.h"
	#include "stdio.h"

	#define _CODE			0

	typdef struct tag_Sprite
	{
		int x;
		int y;
		int bank;
	}SPRITE, *LPSPRITE;
#endif	//__GWsystem_Header_
//---------------------------------

≪ WinMain.h ≫
#include "GWsystem.h"		//呼び出し側は、特に気にせずに使えます。
。
int WINAPI WinMain( HINSTANCE hInstance, 
                    HINSTANCE hPrevInstance, 
                    LPSTR pCmdLine, 
                    int nCmdShow)
{//WinMain
	MessageBox( NULL, "プログラム終了", "テスト", MB_OK );
	return 0;
}








< 一覧ページへ戻る


当サイトが面白いと感じた方は、お手数ですが下記リンクをクリックしてください。
クリック毎に当ホームページの評価が上がります。ご協力お願いします!
inserted by FC2 system