【C言語】ヘッダファイルの書き方
【1】すべてのヘッダファイルにはインクルードガードをつけるべき。
// これを書くことで重複インクルードがなくなる #ifndef _HEADER_H #define _HEADER_H // 処理を書いていく #endif
【2】あるヘッダファイルAが常にあるヘッダファイルBに依存するとき、ヘッダファイルAではヘッダファイルBをインクルードするべき。
これをしないとヘッダファイルAを使用する場合は、その前にヘッダファイルBをインクルードすることを常にソースファイル側で記述しなければならない。こうなると、ソースファイルでインクルードするファイルがどんどん多くなって、管理が難しくなる。
また、ヘッダファイルには「プライベートヘッダファイル」と「パブリックヘッダファイル」というものがある。
プライベートヘッダファイルは内部の詳細を細かく書いてあるため、パブリックヘッダファイルからはプライベートヘッダファイルをincludeしてはいけない。
(内部の詳細を意識させる必要はないため)
関数のプロトタイプ宣言などをパブリックヘッダに記述し、その関数を実際に定義するソースファイルにはstructの詳細などを書いたプライベートヘッダをincludeすればいい。
ここで注意してほしいのは、ユーザはパブリックヘッダファイルをインクルードするだけで関数を使用できることだ。
これによって、関数の実装を意識させずに関数を利用してもらうことができる。