首页 > 解决方案 > 静态结构全局

问题描述

我使用关键字“static”在不同文件中定义了两个同名的结构。这意味着它们应该只在这些文件中可见。

void function()在其中一个文件中使用其中之一。

如果我extern void function()在另一个中声明,它将使用哪个结构?function()定义的地方,还是使用extern函数的地方?

标签: clinkage

解决方案


任何声明为“静态”的内容对于 .o 文件之外的链接器均不可见。您extern function()将只能访问该结构的本地副本——它将很高兴地忘记其他文件中的其他同名结构。


推荐阅读