包含源文件时的翻译单元?

Translation unit when including a source file?

据我所知,一个翻译单元由单个实现文件 .cpp/.c 及其包含的所有 headers' 代码组成。当在另一个 .cpp 文件中包含一个 .cpp 文件,或者在另一个 .cpp 文件中包含一个 .h 文件中包含一个 .cpp 文件时,我们这里的翻译单位是多少?

When including a .cpp file inside another .cpp file, or including a .cpp file inside a .h file that is included inside yet another .cpp file, what is the translation units we have here?

翻译单元是正在编译的单个文件。这是“最外层”.cpp 文件。

也就是说,#including .h 里面的 .cpp 是一个非常糟糕的主意™️。