包括.cpp文件和.h文件的差异(在CPP中具有相同的内容)

Difference in including the .cpp file and .h file (with the same content in cpp)?

本文关键字:文件 cpp 包括 CPP      更新时间:2023-10-16

我最近开始从基础上学习CPP,并且对福特感到非常困惑:

说我有一个带有某些内容的标题(test.h,仅包含声明(和一些源文件(source.cpp(,并且程序产生了一些结果。

如果我将标头文件的相同内容复制到.cpp文件(testcpp.cpp(,并将其包含在source.cpp

在这种情况下,我不明白它产生了什么区别?

(我不会将此testcpp.cpp包括在make file 中(

我看到了一些与此相似的线程,但无法明确主意!!!

我了解了标头和CPP文件的用法,并在项目中正确使用了它,请回答针对此情况的特定内容(我知道这样做会增加混乱,但只想知道(。这样做会有任何区别,还是每个人都遵循的常见做法?

它有什么区别?

标头文件的扩展对任何事物没有影响。您可以同样命名文件test.mpg.test或仅 test(显然更改包含指令(,并且它也可以正常工作。扩展程序是为了使程序员的好处,而不是工具链。

但是,除了.h,.hpp之外的任何其他内容或您的惯例之外,这是一个坏主意。如果您将其命名为.mpg,人们会认为它是一个视频,而不是意识到它是标头文件,而是尝试在媒体播放器中播放它。如果您将其命名为.cpp,人们会认为它是一个源文件,可能会尝试编译或可能添加定义。

从技术上讲,包括使用预处理器的文件只是将一个文件的内容复制到另一个文件中。仅此而已。关于它们的其他一切都是惯例。

在指定源文件时,我可以使用任何扩展名(.fsfs,.xxx(而不是.cpp扩展名给我的源文件

从技术上讲是的,但是编译器通常使用源文件扩展程序来检测他们在这种情况下将无法使用的语言,因此您必须明确指定它。

它什么也没改变。无论您使用 *.h还是 *.cpp或 *.asdasd后缀,只要它本身就不会编译。

某些项目使用.hxx扩展程序用于标头文件和.cc用于源文件。

请,要与您合作的程序员的好处,请坚持常规惯例,并且不要将标题代码放入.cpp文件中。

#include只是将您包含在当前文件中的文件中进行复制n-paste。该文件的命名无关紧要 - 如果愿意,您可以将其命名为" foo.exe";只要它包含有效的源代码在包含在内的上下文中都很好(但是请不要使用非常规的名称,您就会使人感到困惑(。