C数据段标识
C data segment identification
如果我声明
static int a ;// globally and
static int a ; // locally in one function
所以现在有两个实例..
我知道所有静态变量都进入数据段,但它们在数据段中是如何区分的,一个是局部的,一个是全局的??
事实上你可以走得更远:你可以声明
static int a;
在文件范围内,在两个或多个独立的文件中为您的程序做出贡献。不同范围内的每个此类声明都声明一个单独的变量。因此,给定
f.c:
static int a;
int f() {
static int a;
return 0;
}
main.c
static int a;
int f(void);
int main() {
return f();
}
在不同的地方有三个与名称 a
关联的独立静态变量。安排正确的存储与每个变量引用相关联是编译器和链接器的工作。
如果我声明
static int a ;// globally and
static int a ; // locally in one function
所以现在有两个实例..
我知道所有静态变量都进入数据段,但它们在数据段中是如何区分的,一个是局部的,一个是全局的??
事实上你可以走得更远:你可以声明
static int a;
在文件范围内,在两个或多个独立的文件中为您的程序做出贡献。不同范围内的每个此类声明都声明一个单独的变量。因此,给定
f.c:
static int a;
int f() {
static int a;
return 0;
}
main.c
static int a;
int f(void);
int main() {
return f();
}
在不同的地方有三个与名称 a
关联的独立静态变量。安排正确的存储与每个变量引用相关联是编译器和链接器的工作。