C++头文件中的静态函数

Static functions in header files in C++

我知道当我们创建一个函数时"static",它的范围是整个文件,也就是说,它可以在那个特定文件的任何地方使用,我们用它来限制函数的范围到一个特定的文件。如果我们定义一个头文件,其中定义了一些函数,全部是静态的,会发生什么?如果我们将该头文件包含在另一个文件中,我们是否能够访问这些函数?

当您包含 header 时,预处理器 will replace #include 指令包含文件内容。之后,static 的所有规则都适用。也就是说,如果您将带有静态函数的 header 包含到某些编译单元(.cpp 文件)中,每个编译单元将获得这些静态函数的自己的私有副本,只能从该编译单元访问.