c++ - 链接器和加载器:静态变量
问题描述
有人可以解释一下来自 Linker and Loaders 的 Levine 的这一部分,第 131 页吗?
符号信息中最棘手的部分是位置信息。静态变量的位置不会改变,但例程中的局部变量可能是静态的、在堆栈上、在寄存器中或在优化代码中,在例程的不同部分中从一个位置移动到另一个位置……</p >
这是否意味着静态局部变量会根据其所属函数的调用而改变其在内存中的位置?
解决方案
不,即使是“静态局部变量”也是静态变量。它不会在程序运行期间更改其位置。
这种变量的“局部性”只是限制了它的可见性。编译器只允许在其本地范围内引用它。
但是,您可以将其地址返回到其他范围并通过 this 访问它。
推荐阅读
- javascript - 如何验证该字段大于仅在检查特定按钮时
- razor - 在 Blazor 项目中的 Razor 页面之间共享代码
- javascript - 如何在 React JS 中呈现 API 响应?
- c++ - 从 std::array 私有继承时无法从 std::initializer_list 构造
- python - Python套接字谷歌DNS服务器
- ios - 将信息从一个视图控制器传递到另一个视图控制器
- python - python记录线程安全
- python - Scrapy LinkExtractor 抓取使用父目录的链接
- string - 将列表的字符串版本转换为列表
- laravel - 通过 Vapor 部署时的 Laravel API 限制问题