• ベストアンサー

ファイルをフォルダに入れて構造化する

私は趣味でCプログラムをしているのですが、自分の書いたプログラムのファイルが多くなった場合フォルダにまとめたいのですが、メインのファイルと違う階層になるのでメインのファイルで #include hoge.h と書いても"インクルードファイル hoge.hが見つかりません"と出ます。 どうすればhoge.hをコンパイラが検索してくれるのでしょうか? Borland C++ Compiler,VC++でできる方法を教えてください(できれば両方がいいです) 環境はwindows ちなみにbcc developer という Borland C++ Compiler をGUIで操作できるツールを使ってます 宜しくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.2

main.c が ~/foo/ にあって、 hoge.h が ~/foo/bar/ にあるなら #include "bar/hoge.h" でよいでしょう。

black_fire
質問者

お礼

相対パスが使えたんですね。単純に。 何故か#includeの所はファイル名しか記述できないみたいな妙な先入観がありました。 ありがとうございます

black_fire
質問者

補足

あ、ちなみに stdio.h のように、あるフォルダ以下のものはファイル名だけ記述していれば、includeできるみたいな事は stdio.h みたいな特別なファイル以外はできないですよね?

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.4

> 相対パスが使えたんですね。単純に。 言語仕様的には#includeに\を使うと未定義になるので/を使う方が無難です。(ISO/IEC14882:2003, 2.8) # VC(少なくとも2003)は".\xxx.h"とかを勝手に生成してきますが…。

black_fire
質問者

お礼

回答ありがとうございます。 そうだったんですね~。 そんな細かい取り決めがあったなんて・・ バグが出る可能性が一つ減って助かります

すると、全ての回答が全文表示されます。
  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.3

>あるフォルダ以下のものはファイル名だけ記述していれば、 >includeできるみたいな事は stdio.h みたいな特別なファイル以外はできないですよね? gcc なら環境変数 C_INCLUDE_PATH を設定したり、コマンドラインオプション -I を指定すればできますが、Borland C++ Compiler の場合は知らない。

black_fire
質問者

お礼

間違えました。 補足の所にお礼を投稿してしまいました。

black_fire
質問者

補足

koko_u_uさんにはお世話になります 本当に有難うございました!! おかげ様で知りたい事を知ることができました。 またよろしくお願いします

すると、全ての回答が全文表示されます。
  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.1

>#include hoge.h #include "hoge.h"

black_fire
質問者

お礼

すいません・・・ まだC初心者なもので。はずかしい間違いをしてしまいました(笑)

すると、全ての回答が全文表示されます。

関連するQ&A