A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 寇亮 中级黑马   /  2014-8-9 12:19  /  1002 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 寇亮 于 2014-8-12 23:54 编辑

接上一帖——变量的存储属性(寻址和字节顺序)
1.  变量的存储属性
   凡是定义在函数之外的变量都是全局变量。
   任何一个运行中的程序,在内存中都被分成代码区和数据区两部分,数据区又分为自动存储区、静态存储区、动态分配区三部分。
   自动存储区按照栈结构组织,局部变量通常被存放在栈区,在进入所在块时被创建所在块结束时被撤销,变量必须又程序员显式初始化否则初始值不确定。
   静态存储区中的变量在程序开始执行时被创建并自动初始化,程序结束时才撤销。全局变量被分配在静态存储区。
   动态存储区可以由程序员分配和管理,按照堆结构组织。
2.  变量的存储类型
   局部自动类型,函数内部用auto或register声明。通常把使用频率较高的变量定义为register类型,系统将它存放在寄存器中。
   静态局部类型,函数内部用static声明。变量可见域不改变,但函数撤销后变量值仍保留。
   静态全局类型,函数外部用static声明。多文件程序中用static声明的变量可见域仅限于所在文件,未用static声明的外部变量可见域是整个程序。
3.  全局变量
   对于位于全局变量定义点之前的函数,可以通过extern声明使变量的作用域向前扩充。
   在其他文件中使用extern声明,告诉编译器变量到外部去找。

1 个回复

倒序浏览
补充关于结构体的存储:

结构体内部元素存储地址划分是从低到高进行的。
结构体所占存储空间必须是最大成员字节数的倍数。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马