ヘッダーファイルに#include
がありますか?ヘッダーファイルに含まれています
私は一般に、この種の階層的なインクルードが悪いと考えています。あなたはこれを持って言う:
がfoo.h:
#include <stdio.h> // we use something from this library here
struct foo { ... } foo;
main.cの
#include "foo.h"
/* use foo for something */
printf(...)
日のmain.cの実装の変更、そしてあなたは、もはや、コンパイルが意志がfoo.hを使用していませんあなたは手で<stdio.h>
を追加する必要があります。 、
がfoo.h
// Warning! we depend on stdio.h
struct foo {...
main.cの
#include <stdio.h> //required for foo.h, also for other stuff
#include "foo.h"
とするとき、あなたがfooの使用を停止し、それが何を壊していない取り除くが、stdio.hの意志を削除:これを持つ対
foo.hを破る。
#hファイルから#includesを含める必要がありますか?
可能重複[C++用の標準の#include規則はありますか?](http://stackoverflow.com/questions/691079/is-there-a-standard-include-convention-for-c)。これはC++ではなくCですが、原則は同じです。そこには良いアドバイスがたくさんあります。 http://stackoverflow.com/questions/181921/your-preferred-c-c-header-policy-for-big-projectsは別です。 –