• ベストアンサー

自作ヘッダファイルについて (C言語)

今ヘッダファイル自作について勉強しています。 ヘッダファイルの作り方、自作ヘッダファイルのインクルード方法などはわかったのですが、作ったヘッダファイルはどこに置けばいいのでしょうか?コンパイラは Visual C++ 2008 です。回答よろしくお願いします。

noname#113783
noname#113783

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

好きなところにおいてください. もちろんインクルードできないとダメなので ・ヘッダをインクルードするソースと同じところにおく (そのヘッダが特定のプログラムに特化されている場合) ・(自分が「ここに自分で作ったヘッダファイルを置くんだ」と決めた) 一定のところにまとめて置いて, そのディレクトリを適宜指定する (いろいろなプログラムで汎用に使えそうなヘッダの場合) のどちらかが普通.

noname#113783
質問者

お礼

好きなところにおいていいんですね!includeという名前のフォルダとかに置かなきゃいけないのかな、とかアホなことを思ってました。回答ありがとうございました!

関連するQ&A

  • C言語のヘッダファイル

    前回のC言語のコンパイラの質問で、たくさんのご回答ありがとうございました。 おかげさまでコンパイラはなんとかなりそうですが、ひょっとしたらまた同じ質問を載せるかもしれません(^^; 今回はC言語のヘッダファイルを自分で作ってみたいんですが、よくわかりません。 microsoft visual studioのvisual c++付属のINCLUDEフォルダにある、stdio.hを開いてみたのですが、基本のprintf()やscanf()なども、どう定義されているか わからず終いでした。本などでもいまいち詳しく書いていなく(そう思うのは僕だけ?)、困っています。c言語のヘッダファイルとc++のヘッダファイルは やっぱり別ものなんでしょうか?ご回答おまちしております。

  • C言語でヘッダファイルを自作する

    C言語で#defineを用いてヘッダファイルを作成したのですが、 作成したコンパイルするときにヘッダファイルがオープンできません。 参考にしている資料があるのですが、そこに書かれているサンプルプログラムを 丸ごとコピーして作ったプログラムも同様にヘッダファイルがオープンできない というエラーが出るので、ヘッダファイルを定義する方法そのものが間違っていると 思うのですが、どこが間違っているのでしょうか? よろしければ正しい記述方法もお教えください。 #include <stdio.h> #if !defined SAMPLE_H #define SAMPLE_H wa(int a, int b) { return a+b; } #endif #include "sample.h" int main(){ printf("%d\n",wa(40,70)); return 0; } ヘッダファイルの定義の方法は他にもあるとは思いますが、 今回は#defineを用いた方法でお願いします。

  • 自作したヘッダファイルをインクルードするには

    自作したヘッダファイルをインクルードするには 自作したヘッダファイルを半角スペースを含むフォルダを指定する時、 何かエスケープシーケンス文字が必要でしたでしょうか?ド忘れしてしまいました… 例えば、Program Filesの直下に入れた自作ヘッダファイルa.h(まず考えられないとは思いますが…)を インクルードしたい時、 #include "C:\\Program Files\\a.h" でいいんですよね?

  • 自作ヘッダファイルについて (C言語)

    自作ヘッダファイルについて質問なのですが、ヘッダファイルには外部変数や関数のプロトタイプ宣言を記述しますよね?では関数の実装はどこで行ったらいいのでしょうか?回答よろしくお願いします。

  • linuxにおけるCの自作ヘッダファイル

    現在C言語のしっかりと学ばなかった部分を学習したいと思い、自作ヘッダファイルの作成を勉強しています。 そこで、書籍のその章を一通り読んだあと、自分で簡単なものを作成してみましたが、エラーが出てうまくいきません。 どうしてかわかる方いたら教えてください。 コード *****main.c***** #include "print.h" int main(void) { print(); return 0; } *****print.c***** #include <stdio.h> void print(void) { printf("test\n"); } *****print.h***** extern void print(void); エラー /tmp/ccH551c1.o: In function `main': /home/ユーザ名/Documents/StudyC/main.c:5: undefined reference to `print' collect2: ld returned 1 exit status CentOS6.6にて端末上での実行です。 自分の解釈では、""でincludeすることでカレントディレクトリから目的のヘッダファイルを見つけ出してインクルードする、また、ヘッダファイル内でexternすることによってprint.cから目的の関数を定義しているので、main.cでは問題なく使えると思っています。 しかし、エラーではprint()が定義されていないと出るのでまったくわかりません・・・。

  • ヘッダーの中でヘッダーをインクルードすると?

    「自作ヘッダーAの中で別の自作ヘッダーBをインクルードする」 という事はどういう意味になり、どういう事が起こるのでしょうか? 「自作ヘッダーAの中で別の自作ヘッダーBをインクルードする」と 自作ヘッダーAの中で、 Bをインクルードした位置より下に定義した定数や構造体は 未定義とエラーが出てしまいます。 (は2回以上自作ヘッダーAをインクルードした時のみですが。) なぜこのような症状が現れるのでしょうか? >コンパイラ:VC++ 2008 EE

  • ヘッダファイルとソースファイルについて

    今までは、Webプログラミングを行っていたのですが、 最近になって、C++の仕事を請け負いましたので、 C++を勉強しつつ、プログラムをしていたのですが、 Webプログラムとの違いに悩んでいる部分があります。 それは、ヘッダファイルとソースファイルの関係についてです。 ほかのファイルから、インクルードされたヘッダファイルが、 読み込まれるというのは納得がいくのですが、 そのヘッダファイルに関連付け(?)られたソースファイルも、 一緒に読み込まれるという理由がわかりません。 ヘッダファイルでソースファイルを読んでいるような記述もないような感じなので、とても疑問に思っております。 なぜ、ヘッダファイルをインクルードしただけで、付属のソースファイルも読み込まれるのでしょうか?

  • Visual C++ 2008で .cファイルのコンパイラができない

    現在Microsoft Visual C++ 2008 Express Editionでc言語を勉強していて 今の所しばらくc++の勉強をする予定はありませんので、 c言語のみ勉強したいのですがVisual C++ 2008で、.cファイルを作成し、 これをコンパイルしようとすると必ずエラーが出ます。 原因を色々なページを回って探したのですが 「.cppファイルにすればコンパイルできます」という回答しか見当たりません c言語でも最初のうちは.cppファイルでも問題なく動くようですが、 高度なレベルに行くとcpp独自のエラーが出ると聞いております。 このような状態でc言語を勉強するのも微妙です なんとか.cファイルでコンパイラする方法は無いでしょうか? あるいはVisual C++ 2008に代わるお勧めのソフトでも結構です よろしくお願いします。

  • C言語のヘッダーファイルの意味と使い方

    現在、C言語を学習ちゅうです。以下のヘッダーファイルの意味と使い方、後、読み方も教えて下さい。 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <tchar.h> #include <ctype.h> #include <string.h> 後、カウンター変数の意味と使い方も知りたいです。

  • C言語のヘッダファイルの使い方

    ヘッダファイルの使い方について質問です。 ソースファイルA、ソースファイルBで共有して使用したい変数がある場合、 Aでは「int a」と宣言し、Bでは「extern int a」と宣言すれば 同じ変数を共有出来ると認識しています。 それをヘッダファイルへ記述しておきたい場合にはどのように 宣言しておけば良いのでしょうか? ヘッダファイルに「int a」と宣言した場合は両方のソースファイルで includeした時に多重定義でエラーとなります。 では「extern int a」と宣言しておいて、両方のソースファイルで includeするのが正しいのでしょうか? 初歩的な質問で申し訳ないですが、有識者の方、教えてください。

専門家に質問してみよう