【发布时间】:2015-10-11 11:57:14
【问题描述】:
在整个流程执行过程中,全局变量的地址是否保证一致?也就是说,我有
static int dummy;
我用
something(&dummy);
在我的代码中的几个不同的地方。 &dummy 会不会改变,或者我可以安全地将它用作不太可能被另一个库重用的密钥(例如在哈希图中)?
当然,这是假设我没有重新启动程序或重新加载库。
(上下文:这是 Lua 邮件列表中的一些人向我推荐的。我一直在使用它 here。)
【问题讨论】:
-
是的,它确实保持不变。
-
我希望并祈祷,即使是本地 var 的地址,一旦分配,在整个过程执行期间也会说同样的话(假设它永远不会被破坏)。如果他们开始四处走动,我在每个项目上的所有代码库都注定要失败。
标签: c pointers static global-variables