分割コンパイル
https://www.sigbus.info/compilerbook#分割コンパイルとは
1つのプログラムを複数のソースファイルに分割して書いて、別々にコンパイルすること
出力は
オブジェクトファイル
となる
オブジェクトファイル
は実行できないので
リンカ
で実行可能ファイルを作る過程が必要
なぜ必要か
変更されていない関数や特に標準ライブラリの関数を何度もコンパイルするのは無駄
1つのソースコードをまとめてコンパイルすると非常にメモリも時間もかかり開発上不便
人間にとってもソースコードを分割できないと理解がしづらい
問題
コンパイラはどのようなコード断片でもコンパイルできるわけではない
型の情報など
これを解決するのが
ヘッダファイル