The*_* do 33

从C++标准:

源文件以及通过预处理指令包含的所有头文件和源文件#include较少任何条件包含预处理指令跳过的任何源代码行称为转换单元.


cHa*_*Hao 30

"翻译单元"是源文件加上#includes的任何标题或其他源文件,以及它们包含的任何文件,依此类推.源文件就是......一个源文件.

如果它有帮助,可以将源文件视为预处理器运行的"之前",将翻译单元视为"之后".或者,将其视为预处理器将源文件转换为翻译单元的工作.


Joh*_*lla 16

翻译单元是C++中编译的基本单元.它包含:

  • 预处理器运行后,单个源文件的所有内容
  • 它直接或间接包含的任何头文件的内容
  • 减去使用条件预处理语句忽略的任何行

单个翻译单元被编译为目标文件,库或可执行程序.

相比之下,源文件是一个独立文件,就像文件系统上的任何其他文件一样.编译后,它可以是如上所述的翻译单元的组件.