全局变量和局部变量的定义和变量在函数部分的位置息息相关。在函数内的变量——局部变量,在函数外的变量——全局变量(外部变量)和全局变量和局部变量相关的有一个词叫做“变量的作用域”。变量的作用域:变量起作用的范围,可以用药效来类比。
C语言中变量和函数都有两个属性:数据类型和存储类别。存储类别是数据在内存中的存储方式。主要分两大类:静态存储类和动态存储类。具体包含四种:auto、static、register、extern。
auto
auto是最常见的类型。深藏功与名,不说就是auto。
static
分为:静态局部变量(static+局部变量)、静态全局变量(static+全局变量)
静态局部变量在函数调用之后的,随着函数调用结束系统不会将变量的空间释放掉。房子不会推倒,屋子里的东西完好无损。
静态全局变量只限于在本文件引用,而不被其他文件引用。肥水不流外人田。
register
略
extern
在同一个文件中扩展外部变量的作用域。
int main()
{
int a = 0;
char b = 0;
extern int A , B; //declearation
a += A;
}
int A = 1 , B = 9; //defination
int fun()
{
return 1 ;
}
跨文件
扩展外部变量的作用域。
额就写到这吧。