【发布时间】:2011-04-02 04:16:10
【问题描述】:
可能重复:
what is the difference between #include <filename> and #include “filename”
为什么我们对自定义构建类使用引号(“...”),对内置类使用大括号(<...>)?
【问题讨论】:
标签: c++ objective-c c
可能重复:
what is the difference between #include <filename> and #include “filename”
为什么我们对自定义构建类使用引号(“...”),对内置类使用大括号(<...>)?
【问题讨论】:
标签: c++ objective-c c
表示标头不是系统范围的。
这是约定,不是要求。
顺便说一句,这些不是引号,而是引号。排版领域有区别。
【讨论】:
至少对于 C 来说,现在没有什么区别。 ISO 标准规定文件的位置在两种情况下都由实现定义。
通常的方法是将<> 用于系统标头(例如/usr/include 下的内容),将"" 用于您自己的标头,但这不是必需的。
C99 的相关位来自 6.10.2,“源文件包含”,引用如下。
表单的预处理指令
# include <h-char-sequence> new-line
搜索一系列实现定义的位置以查找唯一标识的标头
< 和 > 分隔符之间的指定序列,并导致替换
标头的全部内容指示。如何指定地点或标题
标识是实现定义的。
表单的预处理指令
# include "q-char-sequence" new-line
导致该指令被标识的源文件的全部内容替换
通过" 分隔符之间的指定顺序。搜索命名的源文件
以实现定义的方式。如果不支持此搜索,或者如果搜索
失败,指令被重新处理,就像它读取一样
# include <h-char-sequence> new-line
与原始的包含相同的序列(包括> 字符,如果有的话)
指令。
【讨论】:
是的,据我所知,尖括号(<'s)用于表示头文件是由编译器提供的,或者编译器已被告知头文件可以在其中的目录被发现(-I)。引号 ("'s) 通常用于源代码树中的头文件。但就像其他人提到的那样,这不是必需的。
【讨论】:
-I. 不是默认值。