源文件和翻译单元之间有什么区别?
答案 0 :(得分:33)
来自C ++标准:
源文件以及通过预处理指令包含的所有头文件和源文件#include较少任何条件包含预处理指令跳过的任何源代码行称为翻译单元。
答案 1 :(得分:30)
“翻译单元”是源文件加上#includes的任何标题或其他源文件,以及它们包含的任何文件,依此类推。源文件就是......一个源文件。
如果它有帮助,可以将源文件视为预处理器运行的“之前”,将翻译单元视为“之后”。或者,将其视为预处理器将源文件转换为翻译单元的工作。
答案 2 :(得分:16)
翻译单元是C ++中编译的基本单元。它包含:
单个翻译单元被编译为目标文件,库或可执行程序。
相比之下,源文件是一个独立文件,就像文件系统上的任何其他文件一样。编译后,它可以是上面提到的翻译单元的一个组件。