关于C#:预处理器包含,何时使用<>或””

Preprocessor Includes, when to use <> or “”

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What is the difference between #include and #include “filename”?

我在C学习中遇到了一些问题,我快速搜索了这个网站上的问题,找不到这个问题的答案。可能有点蠢,但这就是原因。

我一直在学习一些C教程,在这本书中,所有的内容都是这样完成的:

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

然而,突然之间,他们扔下了这个炸弹外壳:

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

对于为什么使用"...",我完全没有解释,我完全目瞪口呆。有谁能解释一下<...>"..."之间的区别,以及何时使用它们。

谢谢你的帮助。当做,迈克


通常,您使用#include"..."作为项目中的文件,使用#include <...>作为"系统"包含文件。

不同之处在于预处理器根据要包含的名称搜索文件的方式和位置。""语法通常首先搜索当前文件的目录。但是,实际的搜索机制是特定于编译器的,因此您需要查看C编译器的文档,了解每个选项使用的实际路径的详细信息。

有关详细信息,请参见include syntax from gcc以获取一个实现的示例。


使用""时,将在包含某个内容的文件所在的目录中搜索该文件,如果未找到该包含内容,则编译器将在Standart include目录中查找该文件(它取决于编译器所在的文件夹)。

使用<>,编译器将直接在include目录中查找,而不在任何其他目录中查找。