码迷,mamicode.com
首页 > 其他好文 > 详细

static作用

时间:2015-08-12 16:15:15      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

一、static变量在面向过程中

静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间,内存地址不变,直到整个程序运行结束。静态变量虽在程序的整个执行过程中始终存在,但是在它作用域之外不能使用。(相反,auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。

另外,属于静态存储方式的量不一定就是静态变量。 例如:外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。

static全局变量

静态全局变量即全局变量前加上static。静态全局变量有以下特点:

1、在全局数据区分配内存(静态变量都在全局数据区分配内存);

2、未经初始化的静态全局变量会被程序自动初始化为0

3、静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;

static局部变量

静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。可用于两次函数调用之间对变量的值进行保存,有如下特点:

1、该变量也在全局数据区分配内存;

2、在程序刚开始运行时就完成初始化,以后函数调用时不再进行初始化,若没有显示初始化则被自动初始化为0;

3、始终驻留在全局数据区,直到程序运行结束。作用域为局部作用域,到定义它的函数或语句块结束为止;

总之,全局变量改造成static是改变了作用域,局部变量改造成static是改变了生存期;         

static函数

静态函数也称作内部函数,静态函数与普通函数不同,只能在声明它的文件当中可见,不能被其它文件使用;定义static函数的好处在于:不能被其它文件所用,其它文件可以定义相同名字的函数而不发生冲突。在定义函数时,如果没有加关键字static,或冠以关键字extern,表示此函数是外部函数

二、static变量在对象过程中

 

 

  

static作用

标签:

原文地址:http://www.cnblogs.com/treecool/p/4724510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!