c++ - 不同包含路径中的相同头文件

标签 c++ header-files include-path

假设我们有两个头文件:/directory1/A.hppdirectory2/A.hpp。这两个 header 的内容不同!

我们的构建目标 A.cpp 需要 directory1directory2 作为包含路径,因为在这两个目录中还有其他需要的头文件。

现在,在 A.cpp 中有一个 #include "A.hpp" 语句。

预处理器会选择哪个版本的A.hpp

如果使用第三方软件,是不是很可能会出现这样的情况?

最佳答案

在这种情况下会发生什么取决于所讨论的编译器(请参阅您使用的编译器的文档)。

像这样的情况是为什么使用“不合格”的 header 名称通常不是一个好主意的原因。始终构建您的包含目录,以将路径的一部分作为名称的必要组成部分。例如

#include <boost/preprocessor.hpp>
#include <gl/GL.h>

代替

#include <preprocessor.hpp>
#include <GL.h>

关于c++ - 不同包含路径中的相同头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16832392/

相关文章:

c++ - 如何从 vector<char> 复制一个整数

c++ - WinINet API 可以在 Windows Server 操作系统上使用吗?

c++ - 一个顶点缓冲区中有多个网格?

c - 在c中包含自定义头文件

c++ - 库的 .h 文件中出现 "{return 0;}"或 "{;}"的原因

c++ - 使用makefile和VS Code包含第三方 header 和库

c++ - ‘-’ token 之前应有非限定 ID

c++ - 我如何知道我的阵列存储在哪个缓存级别?

c++ - 编译同一类的两个不同实现

php - 为什么 PHP "require"找不到文件?