3 回答
TA贡献1801条经验 获得超8个赞
它取决于编译器。也就是说,通常,使用"当前工作目录中的标头优先于系统标头。 <>通常用于系统头文件。从到规范(第6.10.2节):
形式的预处理指令
# include <h-char-sequence> new-line
在实现定义的位置序列中搜索由<和>分隔符之间的指定序列唯一标识的标头,并用该标头的整个内容替换该指令。实现位置是如何指定位置或标识标题的。
形式的预处理指令
# include "q-char-sequence" new-line
导致用"分隔符之间指定序列标识的源文件的全部内容替换该指令。以实现定义的方式搜索命名的源文件。如果不支持此搜索,或者搜索失败,则将伪指令重新读取,就像读取
# include <h-char-sequence> new-line
具有与>原始指令相同的包含序列(包括字符,如果有的话)。
因此,在大多数编译器上,使用第""一个检查您的本地目录,如果找不到匹配项,则继续检查系统路径。使用<>开始使用系统标题进行搜索。
TA贡献2039条经验 获得超7个赞
使用尖括号时,编译器会在包含路径列表中搜索文件。当使用双引号时,它首先搜索当前目录(即正在编译的模块所在的目录),然后才搜索包含路径列表。
因此,按照惯例,将尖括号用于标准包含,双引号用于其他所有内容。这样可以确保在(不建议)情况下,如果您具有与标准标头同名的本地标头,则在每种情况下都将选择正确的标头。
TA贡献1780条经验 获得超5个赞
我不明白an implementation-defined manner
=是怎么回事your local directory
。是manner
==,places
并且place
某种程度上是静态的,而不是动态的工作目录?因此,有一个manner
用于搜索您的工作目录的目录吗?
- 3 回答
- 0 关注
- 549 浏览
添加回答
举报