Answers:
根据标准C ++(回程机器链接):翻译单元是C ++中编译的基本单元。它由单个源文件的内容以及直接或间接包含的任何头文件的内容组成,减去那些使用条件预处理语句忽略的行。
单个翻译单元可以编译为目标文件,库或可执行程序。
在“一个定义规则”和模板的上下文中最经常提到翻译单元的概念。
翻译单元是所有意图和目的文件(.C /的.cpp),之后它的完成,包括所有的头文件。
http://msdn.microsoft.com/zh-CN/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引用“翻译单元”时,他表示源代码文件。
正如其他人所说,翻译单元基本上是经过预处理的源文件的内容。它是语言语法中最重要的内容。如果您正在编写C或C ++编译器,则只需担心它。
在我看来,“翻译单元”通常是单个“后预处理”源文件。您可以在此MSDN页面上获得更多详细信息。http://msdn.microsoft.com/zh-CN/library/bxss3ska(v=vs.80).aspx