当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 变量的存储类型(storage class)

变量的存储类型(storage class) 时间:2018-08-15      来源:未知

对于变量的存储类型,前面遇到过一些疑惑,再简单的在这里说一下。存储类型是指存储变量值的内存类型,它用来决定存储空间的大小。变量的存储类型决定着变量的存储器和作用域。有三个地方可以用于存储变量:普通内存、运行时堆栈、硬件寄存器。在这三个地方存储的变量具有不同的特性。

本文引用地址://emb.hqyj.com/Column/7300.html

存储期:变量占据内存的时间期限-----与函数共存、与程序共存。

作用域:变量出现的有效区域-----函数内、本文件内、多文件内。

自动类型:auto为存储类说明符,可以说明一个变量为自动变量。在一个代码块内声明的变量,无论有没有存储类修饰符auto,都属于自动存储类。该类具有自动存储时期、代码块的作用域和空链接(no linkage)。如未初始化,它的值是不确定的。

寄存器存储:关键字register可以用于自动变量的声明,提示他们应该存储于机器的硬件寄存器而不是内存中,这类变量称为寄存器变量。通常,寄存器变量比存储于内存的变量访问起来效率更高。但是,编译器并不一定要理财register关键字,如果有太多的变量被声明为register,它只选取前几个实际存储于寄存器中,其余的就按普通自动比那辆处理。如果一个编译器自己具有一套寄存器优化方法,它可能忽略register关键字。

静态存储:对于在代码块内部声明的变量,如果给它加上关键字static,可以使他的存储类型从自动变为静态。具有静态存储类型的变量在整个程序执行过程中一直存在,而不仅仅在声明它的代码块的执行时存在。注意,修改变量的存储类型并不标示修改该变量的作用域,它任然只能在该代码块内部按名字访问。函数的形式参数不能声明

变量的缺省存储类型:这取决于它的声明位置。1、凡是在任何代码块之外声明的变量(全局变量)总是存储于静态内存中,也就是不属于堆栈的内存,这类变量成为静态变量。对于这类变量,你无法为他们制定其他存储类型。2、而在代码块内部声明的变量(局部变量)的缺省存储类型时是自动的(automatic),也就是说他存储于堆栈中,成为自动变量。有一个关键字auto就是用修饰这种存储类型的,但它极少使用。

内容先讲这些,自己碰到的问题,也希望能对大家有所帮助!

上一篇:基于linux3.0.15内核的中星微zc301摄像头驱动及网络视频服务器移

下一篇:飞行控制器Pixhawk简介

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部