包括.cpp文件和.h文件的差异(在CPP中具有相同的内容)
Difference in including the .cpp file and .h file (with the same content in cpp)?
我最近开始从基础上学习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";只要它包含有效的源代码在包含在内的上下文中都很好(但是请不要使用非常规的名称,您就会使人感到困惑(。
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 为什么我的主文件.cpp不打印头文件中的任何内容
- 生成文件错误 - 找不到文件 - *.cpp
- 如何在文件.cpp gtkmm中声明小部件
- 没有实现文件(.cpp)的派生类
- 如何使用"CMakeLists.txt"中的add_library将整个文件(.cpp,.h等)包含在目录中
- 如何在Linux / Windows操作系统上使用文件*.cpp一步编译下面的代码
- 关于 Linux .so 文件无法链接到主文件.cpp文件
- 文件.cpp从Windows到Linux
- Ubuntu C++ 编译器错误: g++: 错误: 文件.cpp: 没有这样的文件或目录
- 如何将文件.cpp编译为本机编译
- 使用模板类时,似乎无法包含除 main 以外的任何 cpp 文件.cpp
- 无法编译C++文件.cpp。C++98模式
- 为什么C++头文件不需要包含实现文件 (.cpp)
- 如何访问位于独立文件(.cpp)中的非成员函数
- 如何在Visual Studio Code中通过键盘快捷键切换头文件/cpp文件
- 如何将数据从stringstream写入文件(CPP)
- 为什么filestream不把空白写入文件cpp ?