ヘッダファイル
提供: C++入門
2014年5月24日 (土) 13:39時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「C++のヘッダファイル (header file, インクルードファイル, include file)とは、拡張子に .hpp, .h, .hxx, .tcc 、もしくは、拡張子なし(...」)
スポンサーリンク
C++のヘッダファイル (header file, インクルードファイル, include file)とは、拡張子に .hpp, .h, .hxx, .tcc 、もしくは、拡張子なし(iostream, string等)のファイルで、マクロの定義、関数やクラスのプロトタイプ、テンプレートを記述するファイルです。
読み方
- ヘッダファイル
- へっだふぁいる
- header file
- へっだー ふぁいる
- インクルードファイル
- いんくるーどふぁいる
- include file
- いんくるーどふぁいる
目次
概要
ヘッダファイルでは、変数や関数、クラス、テンプレートのプロトタイプ宣言、マクロの定義などを行います。
ヘッダファイルの位置
Unix系OS
Linux, FreeBSD などの OS では、ヘッダファイルは以下のディレクトリにあります。
- /usr/include
- /usr/local/include
自分のプロジェクトのヘッダファイルの格納先
これは、いろいろな考え方がありますが、いくつ例を挙げます。
- ソースファイル(.cpp)と同じディレクトリにヘッダファイルを保存する。
- include ディレクトリを作成して、その中にヘッダファイルを保存する。
- ソースファイル src
- ヘッダファイル include
インクルードガード
ifndef によるインクルードガード
C/C++では、ヘッダファイルを2回以上、インクルードが繰り返されないように インクルードガードを記載します。
hoge.h の例です。
#ifndef HOGE_H #define HOGE_H // ここにヘッダの内容を記載します。 #endif // HOGE_H
pragma once によるインクルードガード
pragma(プラグマ)を使用したインクルードガードは、マイクロソフトの Visual Studio のコンパイラだけではありません。 注意事項として、以下のことがあげられます。
- C/C++の標準仕様ではありません。
- シンボリックリンクを正しくハンドリングできないコンパイラがあります。
変数の宣言
ヘッダファイルでは、変数の宣言はせず、externで、いずれかのC++のソースファイルで宣言された変数を書きます。
extern int global_message;
関数の宣言
foo()の実体は、C++のソースファイルに記述し、そのプロトタイプをヘッダファイルに書きます。
void foo();
関連項目
ツイート
スポンサーリンク