Possible Duplicate:
What is the difference between #include <filename> and #include “filename”?

角括号< >和双引号" "在C++中包含头文件的区别是什么?

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

推荐答案

它依赖于编译器.也就是说,一般来说,使用"将当前工作目录中的头优先于系统头.<>通常用于系统标题.从本规范(第6.10.2节)开始:

表单的预处理指令

  # include <h-char-sequence> new-line

在实现定义的位置序列中搜索由分隔符<>之间的指定序列唯一标识的标头,并使该指令替换为标头的全部内容.如何指定地点或标识标头是由实现定义的.

表单的预处理指令

  # include "q-char-sequence" new-line

导致由"个分隔符之间的指定序列标识的源文件的全部内容替换该指令.以实现定义的方式搜索命名的源文件.如果不支持此搜索,或者如果搜索失败,则重新处理该指令,就像它读取

  # include <h-char-sequence> new-line

具有与原始文件相同的包含序列(包括>个字符,如果有的话) 指令.

因此,在most编译器上,使用""首先判断您的本地目录,如果没有找到匹配项,则继续判断系统路径.使用<>开始搜索系统标头.

C++相关问答推荐

在C中,entry = fgets(entry,sizeof(entry),*pt)是否是错误?

如何将匿名VLA分配给指针?

想了解 struct 指针和空指针转换

在C中使用强制转换将uint16_t转换为uint8_t [2]是否有效?

C中出现分段错误后关闭文件

为什么sscanf不能正确地从这个字符串格式中提取所有数字?

C是否用0填充多维数组的其余部分?

解决S随机内存分配问题,实现跨进程高效数据共享

如何在STM8项目中导入STM8S/A标准外设库(ST VisualDeveloper)?

在创建动态泛型数组时,通过realloc对故障进行分段

每次除以或乘以整数都会得到0.0000

我在反转双向链表时遇到问题

收到不兼容的指针类型警告,因为函数的返回不是空*,而是 struct 指针

C23标准是否向后兼容?

RISC-V GCC编译器错误编译ASM代码

C语言中的指针和多维数组

为什么argc和argv即使在主函数之外也能工作?

在NASM中链接Linux共享库时出错-';将R_ X86_64_;foo';

传递参数:C 和 C++ 中 array 与 *&array 和 &array[0] 的区别

malloc:损坏的顶部大小无法找出问题