- 締切済み
ヘッダファイルとソースファイルについて
C++初心者なのですが ヘッダファイルとソースファイルの関係がよく分かりません。 ヘッダファイルとソースファイルはフリーソフトなどで、統合したりする事が出来るのでしょうか? よろしくお願いします!
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
役割は、既にあるように、複数のソースファイル間で共通で使うものをまとめるためのものがヘッダファイルです。 ですが、ヘッダファイル自体は、C/C++のソースコードです。 他のソースコードから #include で読み込まれることを考えて作られている、というだけです。 実際に、 #include "test.cpp" 等とすれば、 ( 一般にはソースファイルと言われる ) test.cpp を「ヘッダファイル」として使うことができます。 「統合」というのが何を指しているのかがわかりませんが。 #include "header.h" とあったら、 header.h のファイルの中身をコピー → #include "header.h" を消して、その場所にペースト と同等です。 特別なソフトは必要ありません。 実際のコンパイル時には「プリプロセッサ」と呼ばれるプログラムが、上記の作業を行い、その処理されたものをC/C++コンパイラがコンパイルします。 プリプロセッサがどんな処理をするかは、コンパイルオプションで確認することができます。 例えば、 GCC なら -E オプションでプリプロセッサによる処理結果が得られます
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
最近の言語はモジュールのインターフェースをオブジェクトファイルやライブラリや実行ファイルから 直接読み取ることが多いですが、昔流儀のC/C++ ではインターフェース部分をプログラマ自身が 別ファイルに切り出して共用します。これがヘッダファイルです。 ソフトで統合というのは難しいでしょうね。C/C++でのヘッダファイルは実装と1対1ではないし、 案外複雑だからです。
- hashioogi
- ベストアンサー率25% (102/404)
ヘッダーファイルは (1) 複数のソースプログラムに分割されているような場合に関数のインタフェースの整合性をとる、 (2) 複数のソースプログラムで共通に使用する翻訳時の制御条件を書いておく、 等の目的で使用します。 (1) を更に説明すれば、ソースプログラムがs0.cとs1.cに分かれていて、s0.cの中からs1.cの中に書かれている関数f1を呼び出す場合に、ヘッダーファイルに関数のプロとタイプを書いておいて、そのヘッダーファイルをs0.cとs1.cが共にインクルードすれば、関数のインタフェースの整合性を取ることができます。 (2) を更に説明すれば、例えば「金額」という項目があったとして、最初はそんなに金を使わないと思って、 short kingaku ; というようにプログラム全体で書いたとします。そのうちにshortでは足りないということになってlongにする必要がでてきた場合に、ソースプログラムの該当箇所を全てshortからlongに書き換えなければなりません。書き換え間違いも起きます。でもヘッダーファイルに typedef short KINGAKU ; と書いて、 ソースプログラムのあちこちで KINGAKU kingaku ; と書いておけば、ヘッダーファイルを typedef long KINGAKU ; と書き直すだけで済んだりします。
- Tacosan
- ベストアンサー率23% (3656/15482)
同種のもの.