头文件是翻译单元吗?

Ser*_*ket 0 c c++ file header-files translation-unit

头文件是翻译单元吗?如果我将 static 关键字添加到头文件中的变量中,我可以在 .c 或 .cpp 文件中调用该变量吗?谢谢。

Hol*_*Cat 6

不,标题不是单独的翻译单元。

每个 .c/.cpp 文件都是一个单独的翻译单元,并且由于预处理器以文本方式将#includes替换为标头的内容,因此 .c/.cpp 文件(直接或间接)包含的所有标头中的代码是该文件的一部分翻译单位。

换句话说,翻译单元是预处理后的 .c 或 .cpp 文件。