在C ++中包含头文件时,尖括号<>和双引号“”之间的区别?

在C ++中包含头文件时,尖括号< >和双引号有什么区别" "

我的意思是应该使用例如:包括#include <QPushButton>哪些文件,以及使用例如:#include "MyFile.h"


杨__羊羊
浏览 550回答 3
3回答

蝴蝶刀刀

它取决于编译器。也就是说,通常,使用"当前工作目录中的标头优先于系统标头。 <>通常用于系统头文件。从到规范(第6.10.2节):形式的预处理指令&nbsp; # include <h-char-sequence> new-line在实现定义的位置序列中搜索由<和>分隔符之间的指定序列唯一标识的标头,并用该标头的整个内容替换该指令。实现位置是如何指定位置或标识标题的。形式的预处理指令&nbsp; # include "q-char-sequence" new-line导致用"分隔符之间指定序列标识的源文件的全部内容替换该指令。以实现定义的方式搜索命名的源文件。如果不支持此搜索,或者搜索失败,则将伪指令重新读取,就像读取&nbsp; # include <h-char-sequence> new-line具有与>原始指令相同的包含序列(包括字符,如果有的话)。因此,在大多数编译器上,使用第""一个检查您的本地目录,如果找不到匹配项,则继续检查系统路径。使用<>开始使用系统标题进行搜索。

largeQ

使用尖括号时,编译器会在包含路径列表中搜索文件。当使用双引号时,它首先搜索当前目录(即正在编译的模块所在的目录),然后才搜索包含路径列表。因此,按照惯例,将尖括号用于标准包含,双引号用于其他所有内容。这样可以确保在(不建议)情况下,如果您具有与标准标头同名的本地标头,则在每种情况下都将选择正确的标头。

翻阅古今

我不明白an implementation-defined manner=是怎么回事your local directory。是manner==,places并且place某种程度上是静态的,而不是动态的工作目录?因此,有一个manner用于搜索您的工作目录的目录吗?
打开App,查看更多内容
随时随地看视频慕课网APP