2

重複の可能性:
#include <ファイル名> と #include “ファイル名” の違いは何ですか?

C の学習で少し問題が発生しました。このサイトで質問をすばやく検索しましたが、この質問に対する答えが見つかりませんでした。少しばかげているかもしれませんが、ここに行きます。

私はいくつかのCチュートリアルに従ってきましたが、本全体ですべてのインクルードは次のように行われています:

#include <stdio.h>
#include <string.h> etc. etc.

しかし突然、彼らはこの爆弾を落としました:

#include <stdio.h>
#include "structSize.h"

なぜ使用されたのかについての説明がまったくないので"..."、私は完全に唖然としています。<...>それぞれの違いと"..."、いつ使用するかについて、誰かがおそらく説明を提供できますか。

助けてくれてありがとう。
よろしく、
マイク

4

2 に答える 2

8

通常、#include "..."プロジェクト内のファイルと#include <...>「システム」インクルードファイルに使用します。

違いは、プリプロセッサが含める名前に基づいてファイルを検索する方法と場所にあります。 ""構文は通常、現在のファイルのディレクトリを最初に検索します。ただし、実際の検索メカニズムはコンパイラ固有であるため、各オプションで使用される実際のパスの詳細については、Cコンパイラのドキュメントを参照する必要があります。

詳細については、1つの実装の例について、GCCからの構文を含めるを参照してください。

于 2012-08-08T16:46:58.530 に答える
2

ファイルは、何かを含むファイルが配置されているディレクトリで検索されます。""インクルードが見つからない場合、コンパイラは標準のインクルード ディレクトリを検索します (これがどのフォルダにあるかはコンパイラに依存します)。

コンパイラを使用<>すると、他のディレクトリを検索せずに、インクルード ディレクトリを直接検索します。

于 2012-08-08T16:50:54.380 に答える