标签:函数 关键字 stat 作用域 说明 int log 一个 static
1、C语言中每个变量都有3个性质:存储期限、作用域、链接
1)存储期限:变量的存储期限决定了为变量预留的内存被释放的时间。共2种,自动存储期限(auto),静态存储期限(static),自动存储(auto)的变量在所属块被执行时获得内存单元,并在块终止时释放内存单元,自动的获得或释放内存,故名auto。具有静态存储的变量(static)在程序运行期间始终占有同一内存单元,静止不变,故名static。
2)作用域:变量的作用域指可以使用该变量的那一部分程序文本。共2种,块作用域指从声明位置到所在块的末尾均可见,文件作用域指从声明的地方到文件的末尾均可见。
3)链接:变量的链接指程序的不同部分可以共享此变量。共3种,外部链接指可以被程序中不同文件共享,内部链接指只属于单独一个文件,无链接指属于单独一个函数,而且根本不能被共享。
2、变量的默认存储期限、作用域、链接均依赖于变量的声明位置。
1)在块内声明的变量:自动存储期限、块作用域、无链接。
2)在程序最外层(任意块外部)声明的变量:静态存储期限、文件作用域、外部链接。
int i; //静态存储,文件作用域,外部链接 void f(void){ INT J; //自动存储,块作用域,无链接 }
3、static的特殊用途:
1)当在块外部,static说明变量为内部链接,注意:本来在块外部声明的变量具有外部链接,加上static后,变为内部链接,则外部不可见了。
2)当在块内部,static说明变量的存储期限为静态,注意:本来在块内部变量为自动存储期限。
static int i; //静态存储期限,文件作用域,内部链接 void f(void){ static int j; //静态存储,块作用域,无链接 }
标签:函数 关键字 stat 作用域 说明 int log 一个 static
原文地址:http://www.cnblogs.com/litifeng/p/7821095.html