我正在阅读Meyers编写的"Effective C++",并且遇到了"翻译单元"一词.
有人可以给我一个解释:
1)究竟是什么
2)在使用C++编程时,我应该何时考虑使用它
3)如果它只与C++有关,或者它可以与其他编程语言一起使用
我可能已经在不知道术语的情况下使用它了....
从这里 :(返回机器链接)
根据标准C++(wayback machine link):翻译单元是C++中编译的基本单元.它由单个源文件的内容,以及它直接或间接包含的任何头文件的内容组成,减去那些使用条件预处理语句忽略的行.
单个翻译单元可以编译为目标文件,库或可执行程序.
翻译单元的概念通常在"一个定义规则"和模板的上下文中提及.
翻译单元用于所有意图和目的,文件(.c/.cpp)在完成包括所有头文件之后.
http://msdn.microsoft.com/en-us/library/bxss3ska%28VS.80%29.aspx
一个难以回答的难题.C++标准规定:
该程序的文本保存在本国际标准中称为源文件的单元中.通过预处理指令#include将源文件与所有头文件(17.4.1.2)和包含的源文件(16.2)相结合,减去任何条件包含(16.1)预处理指令跳过的任何源代码行,称为转换单元.[注意:C++程序不需要同时进行翻译.]
因此,对于大多数意图和目的,翻译单元是单个C++源文件以及它通过预处理器#include机制包含的头文件或其他文件.
关于你的其他问题:
2)在使用C++编程时,我应该何时考虑使用它
你不能不考虑它 - 翻译单元是C++程序的基础.
3)如果它只与C++有关,或者它可以与其他编程语言一起使用
其他语言也有类似的概念,但它们的语义会略有不同.例如,大多数其他语言不使用预处理器.
这本书很清楚.当Meyers参考"翻译单元"时,他指的是源代码文件.