摘要: static在c里面可以用来修饰变量,也可以用来修饰函数。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。复制代码 代码如下:int a ;int main(){ int b ; int c* = (int *)malloc(sizeof(int));}a是全局变量,b是栈变量,c是堆变量。static对全局变量的修饰,可以认为是限制了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入static修饰之后,只能被本文件中函数引用此变量。static对栈变量的修饰,可以认为栈变量的生命周期延长到程. 阅读全文
posted @ 2013-08-13 11:10 yunsicai 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cppblog.com/oosky/archive/2006/01/21/2958.html代码段:代码编译后的二进制文件数据段:全局变量和静态变量堆:malloc、new开辟的空间栈:局部变量(递归的实现基于栈)全局变量和静态变量分两种,一种是带初始化的,一种是未初始化的。可执行程序可以分为几个段,如代码段,主要放指令,数据段,存放已初始化的全局变量和静态变量,即那些初始化的值存放在该段中,该步骤是在链接是就做好了的。还有BSS段,存放未初始化的全局变量和静态变量,这个段在文件中不占空间,当程序加载进内存后,系统给这个段分配空间,并初始化为0,所以未初始化的全局变 阅读全文
posted @ 2013-08-13 11:06 yunsicai 阅读(366) 评论(0) 推荐(0) 编辑