#include“MyClass.h”和#include“。\ myclass.h”之间的区别是什么?

时间:2017-08-17 00:16:58

标签: c++ visual-c++ mfc

我正在VS2010中开发并希望将代码添加到现有项目中。 顺便说一下,这是一个Win32 / MFC。

我忍不住注意到在MyClass类中(在这种情况下,MyClass是CDialog类的扩展),cpp文件的顶部包含以下内容:

#include "MyClass.h"
#include ".\myclass.h"

我注意到第二个包含是在没有大小写的情况下输入的,但我无法弄明白为什么?

3 个答案:

答案 0 :(得分:1)

MyClass.h”  将在INCLUDE_DIR路径上搜索,该路径在项目设置中定义。

./myclass.h”将在与当前文件相同的目录中搜索。

Windows文件名称不区分大小写,因此如果您的工作目录位于包含路径中,则这些行指向同一文件。

这种冗余可能是VS确保文件至少包含一次的一种方式......

编辑:感谢Arne Vogel,我累了并且写了虚假的东西。 您的编译器只会查找您的头文件,文件名就像#include <file.h> 但我想冗余是要与所有文件系统兼容。

答案 1 :(得分:0)

.\说要查看当前目录。我猜测那个标题中的包含守卫,这不会有问题。

答案 2 :(得分:0)

#include "MyClass.h"来自环境路径,而#include ".\myclass.h"来自当前路径。

大部分时间,“MyClass.h”位于您项目下的inc目录中,但是你的MyClass.cpp位于其他路径中。