无法理解包括头文件

时间:2011-04-26 11:41:57

标签: c++

#include "Ser.h"
#include ".\ser.h"

这是。\ ser.h是Ser.cpp的可执行文件......当右键单击它并按下“打开文档。\ ser.h”时它会转到Ser.h文件...... < / p>

为什么他们再次将可执行文件(./ ser.h)作为头文件包含....不是头文件(Ser.h)足以获得需要定义的所有delarations。

3 个答案:

答案 0 :(得分:2)

.\ser.h 不是可执行文件,它只是另一个头文件。

在文件名与大小写无关的系统中(由于它使用的是Windows路径分隔符\,这似乎很可能在这里),它可能只包含两次相同的文件。

如果正确使用包含防护,那无关紧要。如果案例相关,那么它们很可能是两个不同的文件。

我说“可能”,因为搜索头文件的顺序,甚至 header-names 到头文件或文件的映射,都是实现定义的xyz.h和{{因此,可能会在不同的地方找到1}}。

答案 1 :(得分:1)

如果不知道你的包含路径是什么,就无法确定。这可能只是在不区分大小写的平台(如Windows)上包含两次相同的头文件。这可能是一个错误,但是因为包含警卫(在文件的开头和结尾有那些#ifdef)而无害。

似乎您无法理解头文件的用途。没有 头文件。头文件只是函数和类声明的地方,但通常不是定义的。因此,如果ser.cpp使用common_functions.cpp中定义的某个函数,则应包含适当的标头 - 通常称为common_functions.h

请注意,对于C或C ++世界中的几乎任何事情,都有很多例外,但上述情况在大多数时候都适用。

答案 2 :(得分:1)

./ ser.h 不是可执行文件。请注意,以 .h 结尾的文件扩展名通常是头文件。

如果您的平台是Windows,则会找到文件扩展名为 .exe 的可执行文件。

一个 Ser.h 文件 足以接收所有声明,因此您不需要两个相同的头文件。