头文件如何连接到cpp
文件?我有一个cpp
文件,包括头文件。我知道include包括什么,但是头文件的cpp
文件呢?
让我们说:
calculate.cpp:
#include table.h
.cpp表会怎样?为了完全理解calculate.cpp,是否还需要查看table.cpp?
答案 0 :(得分:1)
您有文件A.cpp
,其中包括B.h
。当您编译A.cpp
时,预处理器将包含文件B.h
到A.cpp
的转换单元的所有内容,编译器会从中创建一个目标文件。
此时,编译器并不关心B.cpp
中任何内容的实现。当编译器编译翻译单元B.cpp
时,将单独处理此问题。编译器在这一点上相信,将来(在链接时)从B
调用某些内容时,会有一些内容。如果不是这样,您最终将出现链接器错误(很可能是未定义的符号)。
您在这里对所发生的事情有很好的回答:How does the compilation/linking process work?
但是只用更少的词来描述它:
.cpp
和包含的.h
文件(例如A.cpp
和B.h
,并创建一个输出,供编译器随后进行编译。这也将独立发生B.cpp
及其包含/定义)因此,我想您正在寻找的连接发生在链接阶段。那是所有零件在一起的地方。
答案 1 :(得分:-2)
从编译器的角度来看没有关系
您可以将整个项目放在一个文件中,该文件可以是.h,并且仍然可以构建和运行它。不推荐,但是您可以做到
拥有.cpp和.h文件的主要原因是在逻辑上将公共接口与内部实现分开。
当我需要使用cpp组件时,我通常只读取.h文件