C语言详解(3)变量的属性--关键字auto、register、static
2017-11-25 19:13
671 查看
变量的属性—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语言详解系列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修饰函数表示函数只有在本文件中有效,不能跨文件进行调用。
相关文章推荐
- 属性关键字 auto,register,static分析
- C语言变量的存储方式 ——auto,register,static关键字
- auto,static,register分析(属性关键字)
- 变量属性(auto、register、static、extern)
- C变量(auto、static、register、extern)函数(内部、外部)与存储
- C/C++中auto、static、register、extern关键字区别小结
- 说明以下关键字的作用 auto static register const volatile extern
- c语言变量的存储方式(auto,register,static,extern)及作用域(局部变量/全局变量)详解
- C语言中关键字auto、static、register、const、volatile、extern的作用
- C语言变量存储类型auto,static,extern,static extern,register
- 谈谈以下关键字的作用auto static register const volatile extern
- 【C语言复习(一)】auto、static、register、const、volatile关键字的分析
- C/C++中auto、static、register、extern关键字区别小结
- 说明以下关键字的作用 auto static register const volatile extern
- C语言-变量的存储类别(auto, static, register, extern)
- C语言中关键字auto、static、register、const、volatile、extern的作用
- 关键字:auto、static、register、const、volatile 、extern 总结
- C/C++中auto、static、register、extern关键字区别小结
- C语言中关键字auto、static、register、const、volatile、extern的作用
- C语言中关键字auto、static、register、const、volatile、extern的作用