Cにファイルを含めるには、2つの方法があります。#<file.h>または "file.h"を#includeにする必要がありますか?
#include <headerpath/header.h>
または
#include "headerpath/header.h"
最初のものは、コンパイラによって知られているディレクトリを使用してファイルを探しますので、我々は標準含めることができますファイルはどこにあるのかわからなくても。 2番目の方法は、引用符間のパスのみを使用してファイルを検索します。 (検索が失敗した場合、コンパイラは代わりに最初の方法を試みます)。
コンパイラが知っているディレクトリのリストに1つ以上のディレクトリを追加することができます(最初の方法)。たとえばgccの場合、-I
オプションがあります。
だから最後に、これらの2次のコードは、(path_to_headerがディレクトリである)と同等です:
1)
#include "path_to_header/header.h"
int main(void)
{
return (0);
} // Compiling with : gcc main.c
2)
#include <header.h>
int main(void)
{
return (0);
} // Compiling with : gcc main.c -I path_to_header
だから私の質問は以下のとおりです。 例えば、自分のヘッダファイルを使って、1)か2)を使うべきですか?どうして ?たぶんそれは個人的な選択でしょうか?知るべき異なる状況はありますか?読書:)のため
感謝の
編集:私は二つの方法の違い(私は、私が説明したように、私はそれらを理解this postのおかげだと思います)を探していないよ 、私はそこにあるかどうかを知りたいと思いましたグループワークや同じプログラムのために別のコンパイラを使っていることを知っておくべきいくつかの特殊な状況...私の考えをどのように公式化するのか分からないかもしれません(あるいは本当の答えがないばかげた質問です) )。
システムヘッダを含む場合は<>を使用し、現在のソースファイルのパスと相対的なヘッダを含む場合は ""を使用してください。 – hetepeperfan
[#と#include "filename"の相違点は何ですか?](https://stackoverflow.com/questions/21593/what-is-the-difference-between-include-filename-and-lib-label-files-and-filename-and-files.html)インクルードファイル名) –
'#include" path_to_header/header.h "は"標準ファイルをどこに置かなくても含めることができます " 。時々、謎のビットは良いです。 #3 '#include" header.h "'を使用してください。 – chux