2011-12-25 4 views
0

ヘッダーファイル "foo.h"とソースファイル "bar.c"を作成しましたが、bar.cをfoo.hにインポートできないようです。ヘッダーファイルのカスタムクラス

これは可能ですか?もしそうなら、誰かが私を正しい方向に向けることができますか?

+3

ヘッダーファイルは '.c'ファイルに'#include'しますが、他の方法では使用できません。 (根本的な問題は何であるか分かりません) - ああ、Cにはクラスがありません。 – Mat

+0

ありがとう:)しかし、.hファイルにカスタムデータ型を追加する方法はありますか?または、構造体を作成する必要がありますか? – malgca

+0

'struct'sはC言語で(適切な)カスタムデータ型を作成する唯一の方法ですが、ヘッダに入れることができます。 (私はまだあなたの問題が何であるか理解していません) – Mat

答えて

3

あなたはそれを後方に持っています... .hファイルには、.cファイルに含まれるものを他のプログラムに伝えるためのファイルがあります。 .cは、ヘッダに記載されているものをに実装しています。

他のプログラムで実装したものの一部を使用したい場合は、#includeヘッダーを使用します。コンパイル時に、リンカーと呼ばれる別のプログラムも実行されます。これは、使用したヘッダーから実装に関数を接続します。

0

基本的に、ソースファイルのインポートは避けるべきですが、コンパイラによっては許可されるものもあります。 データ型に関しては、ヘッダーファイルでそれらを宣言するのが完全に理にかなっています。

+0

私はすべてのコンパイラを賭けたい*それを許す必要があります。私が理解できる限り、ヘッダーファイルと実装ファイルの区別はプログラマの心にのみ存在します。コンパイラには両方ともCソースファイルです。いくつかは大部分の宣言を含み、またいくつかは宣言だけでなく定義も含みます(コンパイラがコードを見る前にプリプロセッサによって '#include'が実行されるためです)。 – delnan

+0

@delnan、意味があります... – stdcall

関連する問題