是否应该使用C库';s公共标题#是否包括带有双引号或尖括号的其他标题?

是否应该使用C库';s公共标题#是否包括带有双引号或尖括号的其他标题?,c,header-files,C,Header Files,对于放入公共标题中的include指令,使用#include“…”而不是#include是否有已知的好处 例如,如果一个公共头文件需要包含一个文件,那么它是否应该使用: #include "file.h" 或 #包括 (假设头安装在include安装目录的mylib子目录中) 在常见的实践中,while.一般规则是使用尖括号来包含作为系统包含一部分的头文件,并引用其他所有内容。如果使用尖括号,并且在(不同的包含目录中)有to文件,则可能会得到错误的头文件。如果你使用“file.h”,你有更好

对于放入公共标题中的include指令,使用
#include“…”而不是
#include
是否有已知的好处

例如,如果一个公共头文件需要包含一个文件,那么它是否应该使用:

#include "file.h"

#包括
(假设头安装在include安装目录的
mylib
子目录中)


在常见的实践中,while.

一般规则是使用尖括号来包含作为系统包含一部分的头文件,并引用其他所有内容。

如果使用尖括号,并且在(不同的包含目录中)有to文件,则可能会得到错误的头文件。如果你使用“file.h”,你有更好的机会得到你想要的

双引号还可以使人们在不添加任何include dir的情况下使用您的库


基本上,如果您有选择,我建议您使用双引号。

如果您使用尖括号,除非这些是系统标题,否则可能无法使用。可能重复@usr2564301我知道技术上的区别,我正在寻找编写库的公共标题时的良好做法。如果您使用尖括号,并且在(在不同的包含目录中)您可能会得到错误的一个。我不同意。对于给定的编译器实例,搜索路径始终相同,因此您将始终得到相同的路径。例如,以我的问题为例,
将位于相同的
mylib
目录中,该目录在包含具有此指令的文件时使用(通过
)。这假设您的库包含在
中。您可以告诉人们这样做,但他们并不总是听。当然,他们的代码被破坏了,但很可能您必须解释如何修复它,这样做并没有任何好处…
#include <mylib/file.h>