概述
一,内存映像
当在命令行中执行一个程序时,计算机会给这个程序映射一个独立的虚拟的内存空间,该程序就在这样的空间中运行,这个空间称为内存映像
二,存储类型 -------//用于定义变量
在定义变量时,需要指定变量的数据类型,
数据类型主要用于说明该变量的存储方式和在内存中的长度,
例如:
int a; //变量a的存储方式为二进制补码,长度为4个字节
double b; //变量b的存储方式为符号位+指数位+小数位,长度为8个字节
但是,在定义变量时,除了需要指定数据类型之外,还必须指定变量的存储类型。
因为存储类型主要用于说明变量的存放位置,存储期和作用域,变量的这些特征能够让我们更精准在程序中使用变量。
1,存储类型的分类
在linux中,C语言中的存储类型分为6类:
自动存储类型
寄存器存存储类型
全局非static静态存储类型
全局static静态存储类型
局部static静态存储类型
外部存储类型
2,如何定义不同存储类型的变量
变量定义位置 变量定义的形式
自动存储类型 代码块内 int a; //代码块:用{}括起来的一块代码
寄存器存存储类型 代码块内 register int a;
全局非static静态存储类型 代码块外 int a;
全局static静态存储类型 代码块外 static int a;
局部static静态存储类型 代码块内 static int a;
外部存储类型 代码块外 extern int a;
3,不同存储类型变量的特征
在内存中的位置 | 存储期 | 作用域 | 链接 | |
自动存储类型 | 栈 | 定义-代码块结束 | 代码块 | 空链接 |
寄存器存存储类型 | 寄存器/栈 | 定义-代码块结束 | 代码块 | 空链接 |
全局非静态存储类型 | .data/.bss | 定义-程序结束 | 多文件 | 外部链接 |
全局静态存储类型 | .data/.bss | 定义-程序结束 | 单文件 | 内部链接 |
局部静态存储类型 | .data/.bss | 定义-程序结束 | 代码块 | 空链接 |
外部存储类型 | .data/.bss | 定义-程序结束 | 多文件 | 外部链接 |
最后
以上就是还单身戒指为你收集整理的C语言的内存映像与存储类型的全部内容,希望文章能够帮你解决C语言的内存映像与存储类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复