メカトロニクス研究部会

コラム:ヘッダーとソースの違い

note_add 2025/05/29
update 2025/05/29

C言語・C++(一応C#も使えはするけど一旦置いといて)のコードは2種類あります。
一つはヘッダー、もう一つがソースです。今回はコイツらが何者なのか、どう使い分けるのかを知っていこう。

ヘッダーってなんぞや

まずはヘッダーから。いわゆる.hですね。

ヘッダーは、「このプログラムのどっかにxxxって名前の物が(多分)存在するから使っていいよ〜」ってのを延々と書いているファイルです。
あくまで存在する(と仮定する)という事しか書かないんですね。

そして「(多分)」って書いた通り、嘘を書くことも出来ますし、何なら一番最後に一つのプログラムにするまでエラーにならなかったりします。
嘘を書いたとて、それが本当に存在しないかは最後まで確認しないと分からないですからね。

逆に、ヘッダーに敢えて書かない事で外部から使えない関数などを作ることも可能です。

ソースってなんぞや

一方のソースはいわゆる.c

ソースはヘッダー以外です。雑いし2種類って言ってる時点でそりゃそうなんだけど、実際この通りなんだよね。
もっと言えば、外部に公開できない(=「プログラムのどっか」が「ファイル内」に限定される)って所を除けばヘッダーの機能も担うし。

ヘッダーがあくまで存在しか書かないのに対して、その実体を作るのが大きな役目です。
なので、ヘッダーは無くても動きますがソースは無いと動きません。(ヘッダーライブラリとか一部例外はあるけど)