2. 存储类型
来源:互联网 发布:淘宝买的模板在哪里 编辑:程序博客网 时间:2024/06/18 11:02
2. 存储类型
存储类型有4个 auto、static、extern和register,这4个都可以放在变量前面,放在函数前面的只有两个extern和static2.1 变量的特性
每个变量都有3方面特性:
存储期限,变量的存储期限决定了变量在内存中存在的时间,自动存储期限的变量在所属块程序被执行时分配内存,在离开是释放内存,这一般是代码块或函数内部的变量及函数的参数。静态存储期限的变量在整个程序运行期间都存在。
作用域,变量的作用域分为块作用域和文件作用域,定义在函数内部的变量具有块作用域,定义在函数外部的变量具有文件作用域。
链接,变量的链接属性决定了变量的共享范围。外部链接可以在几个文件中共享,内部链接只在当前文件中共享,无链接变量在程序块中共享。
变量的默认存储期限、作用域和链接依赖变量定义的位置,在块内部声明的变量具有自动存储期限、块作用域、无链接;在程序最外层声明的变量具有静态存储期、外部链接和文件作用域。
如果默认声明不能满足程序需求可以指定存储类型来改变其特性,例如可以指定为static或extern,这两个最常用。
2.1.1 auto存储类型
块内的变量都是auto存储类型,一般不明确指定。
2.1.2 static存储类型
static 可以改变变量的链接属性和存储期限,块外的static变量具有内部链接属性,其它文件不能访问,起到了隐藏的作用;块内部的static变量具有静态存储期限,初始化一次,整个程序期间都将存在。
2.1.3 extern 存储类型
extern变量使得几个文件可以共享此变量,extern变量只是声明而没有定义(没有分配内存空间,extern变量同事初始化除外)。
2.1.4 register存储类型
register变量使得变量保存在CPU的寄存器中。
2.2 函数的存储类型
函数的存储类型只有static和extern,extern具有外部链接属性,其它文件可以访问,static具有内部链接属性其它文件不能访问。
该博客教程视频地址:http://geek99.com/node/1034
原文出处:http://geek99.com/node/891#
0 0
- 2. 存储类型
- 存储类型
- 存储类型
- 存储类型
- 存储类型
- 存储类型
- Cache存储引用类型
- 变量的存储类型
- 变量的存储类型
- 名词解释:存储卡类型
- 浮点类型的存储
- 存储类型总结
- 存储设备类型
- C++存储类型
- C51-数据存储类型
- C语言存储类型
- 链接属性 存储类型
- C++变量存储类型
- eclipse 断点调试
- 红黑树
- C++ primer 模板与泛型编程
- php5类中的__get()和__set()方法用于private私有属性
- Android 单元测试方法与步骤
- 2. 存储类型
- C++ stringstream介绍,使用方法与例子
- 重载多维数组下标 c++
- Java中 Map、Set、List的基本用法
- RedHat Enterprise Linux 5下Oracle11g安装并升级到11.2.0.3
- html颜色
- mkimage工具详解
- 利润低的商品是否参与全场打折?如何设置?
- ios--解决方案--图片浏览(带缩放+平移)