c - 静态结构全局
问题描述
我使用关键字“static”在不同文件中定义了两个同名的结构。这意味着它们应该只在这些文件中可见。
void function()
在其中一个文件中使用其中之一。
如果我extern void function()
在另一个中声明,它将使用哪个结构?function()
定义的地方,还是使用extern
函数的地方?
解决方案
任何声明为“静态”的内容对于 .o 文件之外的链接器均不可见。您extern function()
将只能访问该结构的本地副本——它将很高兴地忘记其他文件中的其他同名结构。
推荐阅读
- python - 作为测试的一部分,在 pandas 数据框中检查正确 dtype 的最佳方法是什么?
- haskell - 如何编译在 StateT monad 中使用镜头的 ghc-8.4.2 代码
- mysql - Mysql 查询 - GROUP BY 并显示最高的 COUNT(*)
- c# - 可为空的日期时间属性与其字段有什么区别?
- c# - 我想访问 uwp 中的资源
- xcode - 如何在 Xcode 中使用 configure 命令?
- php - Sum:两个不同的时间查询
- java - 使用 maven 启动应用程序时如何解决“找不到工件 javax.xml.ws:WebServiceContext”错误?
- azure - Blob 存储 ID 无法通过 Azure 函数插入到 Azure SQL 数据库
- javascript - Javascript 下拉按钮