【发布时间】:2013-05-25 19:20:07
【问题描述】:
假设我们有两个头文件:/directory1/A.hpp 和 directory2/A.hpp。这两个标题的内容不同!
我们的构建目标A.cpp 需要directory1 和directory2 作为包含路径,因为这两个目录中还有其他需要的头文件。
现在,A.cpp 中有一个 #include "A.hpp" 语句。
预处理器会选择哪个版本的A.hpp?
如果一个人使用第 3 方软件,那么这种情况可能会发生吗?
【问题讨论】:
-
我认为编译器只是将
#include这一行替换为文件的内容,所以名称无关紧要。 -
如果你使用
#pragma once或者包含保护,没关系,因为内容只插入一次。 -
对不起,忘了说如果两个头文件不同会发生什么,见编辑。
-
命名空间,命名空间,命名空间,无处不在。文件名也是名称,因此它们需要命名空间。拍摄两位图书馆作者。
标签: c++ header-files include-path