#include "MyClass.h" 和 #include ".myclass.h" 有什么区别



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

我不禁注意到,在类MyClass(在本例中,MyClass是CDialog类的扩展(中,cpp文件的顶部包含以下内容:

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

我注意到第二个包含是在没有大写的情况下输入的,但我不太清楚为什么?

"MyClass.h" 将在项目设置中定义的路径INCLUDE_DIR搜索。

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

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

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

编辑:谢谢Arne Vogel,我累了,写了假东西。 您的编译器将仅查找您的头文件 il 文件名类似于#include <file.h>但我想冗余是为了兼容所有文件系统。

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

#include "MyClass.h"

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

大多数时候,"MyClass.h"在你的项目下的inc目录中,但你的MyClass.cpp在其他路径中。

最新更新