存储类指定变量的作用域、生存期和绑定。
要完全定义一个变量,不仅需要提及其“类型”,还需要提及其存储类。
变量名称标识计算机内存中的某个物理位置,其中分配了一组位来存储变量的值。
存储类告诉我们以下因素 -
- 变量存储在哪里(在内存或 cpu 寄存器中)?
- 如果未初始化任何内容,变量的初始值是多少?
- 变量的范围是什么(可以访问它的位置)?
- 变量的寿命是多久?
捆绑
绑定查找标识符的应用匹配项(声明/定义)。
- 变量的范围应该是已知的。
什么是块结构?
标识符在哪个块中是可变的?
- 如果我们再次使用相同的标识符名称会发生什么?
“C”禁止在同一范围内使用相同的标识符名称。
相同的名称可以在不同的作用域中使用。
例
double f,y;
int f( ) //error {
---
----
----
}
double y; //error
例
double y;
int f( ){
double f;//legal
int y; //legal
}
例
以下是用于绑定变量的 C 程序
#include<stdio.h>
int i=33;
main() {
extern int i; {
int i=22; {
const volatile unsigned i=11;
printf("i=%d
",i);
}
printf("i=%d",i);
}
}
输出
当上述程序被执行时,它会产生以下输出 -
i=11
i=22