gpt4 book ai didi

c - 编译器或处理器在运行时如何区分静态局部变量?

转载 作者:行者123 更新时间:2023-12-04 08:46:17 25 4
gpt4 key购买 nike

我听说静态变量和全局变量存储在同一部分中。如果这不是真的,就像全局变量一样,在卸载代码或程序退出之前,不会从内存中删除静态局部变量。
考虑以下代码:

void f1() {
static int i;
...
...
}

void f2() {
static int i;
...
...
}
如果两者都 i的在同一部分,处理器将如何区分它们?
当一个函数被调用时,处理器如何加载相应的静态局部变量?
这个问题可以扩展到多文件全局静态变量。

最佳答案

每个变量都应该有自己独特的位置和范围!作用域很重要,每个变量都有一个与之关联的作用域。这就是保持 int i 的原因在 f1与 int i 分开在 f2 .所以你可以看到,因为它存在于普通变量中,这同样适用于静态变量。
你的问题让我有点困惑,但我想我已经回答了。如果您询问内存地址在哪里,则无法预测。

关于c - 编译器或处理器在运行时如何区分静态局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64299959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com