静态变量存储在程序的数据段中,不像自动变量存储在堆栈部分中。 假设我编写如下代码。
#include <stdio.h>
void temp();
int main()
{
static int a=10;
temp();
return 0;
}
void temp()
{
static int a=20;
}
在 2 个函数中定义了相同的静态变量名称。在数据段布局中,将有 2 个具有相同名称的变量。 这不会在编译/执行时造成混淆吗?目前如何避免这种情况?
最佳答案
这两个静态变量具有不同的作用域,因此它们不会冲突,static 是定义存储变量的位置的存储类。它与变量范围无关。
In data segment layout there will be 2 variables with same name
数据段中没有任何命名,变量只是通过它们的地址来标识,而不是名称
关于c - 静态变量存储说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41165376/