C语言详解(3)变量的数据--关键字auto、register、static
来源:互联网 发布:linux系统ubuntu 编辑:程序博客网 时间:2024/04/29 17:14
变量的属性—auto、register、static
关于C语言详解系列blog的目录:http://blog.csdn.net/snake_lp/article/details/78630717
变量可以是各种语言的基石。如果没有变量,你无法想象编程语言会是什么样子的。我们在编程的过程中,需要合理并熟练的利用变量的属性,使变量发挥最大的作用,将变量的艺术发挥到极致。
C语言中变量的数据是有几个关键字来进行修饰的。下面我们将一起探讨一下修饰变量的几个关键字。
1. auto
auto是C语言中局部变量的默认属性,只能修饰局部变量。表示此变量存放在栈空间中。
C语言中一般很少使用此关键字,但是对于局部变量默认的类型就是auto,它是隐性的修饰了局部变量。
auto的出现就意味着,当前变量的作用域为局部的(在函数内部有效或者代码段内有效),同时也意味着该变量的存储位置在栈中。如果没有对此变量进行初始化,直接使用的话,就是一个随机值。
2. register
register指明变量存储在寄存器中。需要注意的是register用于请求寄存器变量,但是不一定功能请求成功。register变量必须是MCU寄存器可以接受的值。并且regsiter变量不能使用&来进行访问。这是因为&运算符只能去内存的地址,而不能取寄存器的地址,所以这样的操作是非法的。
register类型的变量出现的概率也比较小,因为在现在的嵌入式软件开发中都会使用结构体来抽象MCU的寄存器。所以在我们开发的过程中,基本上不会使用到此关键字。
寄存器变量对于内存中的变量来说,它的访问速度是非常快的。但是在一个MCU钟寄存器的数量是有限的,所以一般情况下程序员不会直接去使用寄存器变量。
寄存器变量是指一个变量直接引用寄存器(引用和映射存在区别的),对变量的操作其实就是对寄存器的直接访问。
3. static
static表示的是静态的,即可以修饰变量也可以修饰函数。static修饰局部变量,表示的是局部变量存储在静态程序区;static修饰全局变量,表示该全局变量的作用域仅仅在本文件有效;static修饰函数表示函数只有在本文件中有效,不能跨文件进行调用。
- C语言详解(3)变量的数据--关键字auto、register、static
- C语言中变量的属性(auto static register)
- C语言变量的存储方式 ——auto,register,static关键字
- C语言关键字--- auto static register
- C语言auto、register、static、extern关键字
- 【C语言复习(一)】auto、static、register、const、volatile关键字的分析
- C语言之关键字(一)auto,register,static,const的了解
- C语言-变量的存储类别(auto, static, register, extern)
- c语言变量的存储方式(auto,register,static,extern)及作用域(局部变量/全局变量)详解
- C语言关键字auto、static、register、const、volatile、extern
- C语言中关键字auto、static、register、const、volatile、ex...
- C语言之auto、static、register、const、volatile、extern关键字
- C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register)
- C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register)
- C语言中关键字auto、static、register、const、volatile、extern的作用
- C语言中关键字auto、static、register、const、volatile、extern的作用
- C语言中关键字auto、static、register、const、volatile、extern的作用
- C语言中关键字auto、static、register、const、volatile、extern的作用
- 快速申请iOS证书(.p12)和(.mobileprovision)
- HQL的参数绑定案例
- 无人机驾驶员培训学习记录(十七)
- 软件测试面试题:给你任意指定生活中的一件物品,你会怎么测试?
- 【JavaScript】let与var的区别及变量、函数提升
- C语言详解(3)变量的数据--关键字auto、register、static
- 华为手机的相关Log开关 USB开关
- 前端标签命名规范
- 判断素数
- c++运算符重载总结
- 中印边界争端和冲突的历史真相
- Struts2框架-2
- jarvis oj 软件密码破解-3 Writeup
- 使用QPainter、QPainterPath、QRegion绘图实践