#includeについて(2)
#includeディレクティブはヘッダファイル以外にも利用することができます。
そのケースを2つほど紹介します。
.cppファイルを#includeする
プロジェクト規模が大きくなり.cppファイルの数が膨大になると、リンクに非常に時間がかかったりメモリ不足を起こしたりするケースがあります。
そのような場合複数の.cppファイルを#includeディレクティブで指定することで一つの大きなファイルとして扱い、ビルド対象のファイル総数を減らすことができます。
例えばプロジェクト中にゲームデータを扱う.cppファイルがGameDataディレクトリ以下に複数あり、それを一つのビルド対象ファイルとしてまとめたい場合、以下のようなファイルを作成してプロジェクトに追加します。
//GameData.cpp #include "GameData/CharacterData.cpp" #include "GameData/EnemyData.cpp" #include "GameData/EventData.cpp" #include "GameData/ItemData.cpp" :
注意点としては、インクルードされた各.cppファイル(上記の例だとCharacterData.cpp等)はビルド対象から外す必要があります。
そうしないとプロジェクトに同じ内容が二重に存在すると見なされてコンパイルに失敗します。
Visual Studioの場合は該当のファイルのプロパティから”ビルドから除外”を"はい"にすることで対応できます。
ソースコードの一部を#includeする
#includeディレクティブは一つの完結したソースコードファイルだけでなく、ソースコードの一部分が記述されたファイルを指定することも可能です。
enum { #include "hoge.enu" };
例えば上記のように記述して、"hoge.enu"という列挙子が記載されているファイルを用意することでソースコードの一部として利用することが可能になります。
ファイルの拡張子は.txtでも何でも可能なのですが、
.inc(includeの略)
.enu(enumの略)
等を使用するとファイルの用途が明確になるのでお勧めです。