源文件和翻译单元有什么区别?
问问题
1317 次
3 回答
34
来自 C++ 标准:
源文件连同通过预处理指令#include 包含的所有头文件和源文件减去任何条件包含预处理指令跳过的任何源行称为翻译单元。
于 2010-05-08T20:14:18.420 回答
31
“翻译单元”是一个源文件加上它#includes 的任何标题或其他源文件,加上它们包含的任何文件,等等。源文件就是……一个源文件。
如果有帮助,请将源文件视为预处理器运行的“之前”,将翻译单元视为“之后”。或者,将其视为预处理器将源文件转换为翻译单元的工作。
于 2010-05-08T20:08:24.943 回答
16
翻译单元是 C++ 中编译的基本单元。它包含:
- 预处理器运行后单个源文件的所有内容
- 它直接或间接包含的任何头文件的内容
- 减去使用条件预处理语句忽略的任何行
单个翻译单元被编译成目标文件、库或可执行程序。
相比之下,源文件是一个独立的文件,就像文件系统上的任何其他文件一样。编译后,它可以成为上述翻译单元的一个组件。
于 2010-05-08T20:11:49.163 回答