#include <filename> 和 #include "filename" 的区别

Difference between #include <filename> & #include "filename"

这是 C 中的预处理器指令:

#include <filename>

我们也可以这样写:

#include "filename"

这两个有区别吗?

一般来说,<>版本应该只在"system directories"中查找,而""应该先在"local directories"中查找,然后是系统目录。

这实际意味着什么取决于实现。在大多数情况下 "" 将首先在 current 目录中查找,但在某些实现中它会首先在源 (.c) 文件的目录中查找(并且一些编译器有一个开关)。此外,行为也不同 w.r.t。如果 "local directory search" 失败(与 <> 或失败相同),"set of system directories" 进行搜索。