堆与栈的区别(转)
fstream用法

静态外部变量和静态局部变量

yichen posted @ 2014年2月20日 16:12 in Essay , 592 阅读

1.用static声明静态外部变量,是希望某些外部变量只限于被本文件引用,而不被其他文件引用。

当在file1.cpp中定义static int a = 1;时,在file2.cpp中声明extern int a;时将出错。

而用static声明局部变量时,则是出于一次赋值多次使用的目的,其赋值是在编译时分配内存。

2.extern 声明只能是外部变量,即全局变量,对局部变量没有意义。

3.静态外部变量与外部变量的区别是:外部变量可以再说明为外部变量(extern),即可跨文件作用域,而静态外部变量却不能再被说明为外部的,即只能被所在源文件使用。

4.静态外部变量和外部变量豆存放在静态存储区,都是在编译时分配内存。生存期是整个程序运行期。

5.内存生存期:1)静态变量是整个程序运行期。2)栈中变量生存期是与函数调用和类有关。3)堆上变量是从new或malloc开始,到调用delete或free结束。如果不掉用delete或free,这块空间将到程序运行结束后才被系统回收。

1


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter