变量的作用域

所谓的作用域就是指变量起作用的范围,也是变量的有效范围。变量按他的作用域可以 分为局部变量和全局变量。

局部变量

在一个函数内部声明的变量是内部变量,它只在本函数内有效,在本函数以外是不能使 用的,这样的变量就是局部变量。

全局变量

在函数外声明的变量就是全局变量。一个源程序文件可以包含一个或者多个函数,全局 变量的作用范围是从它开始声明的位置一直到程序结束。

定义全局变量会永久占用单片机的内存单元,而局部变量只有进入定义局部变量的 函数时才会占用内存单元,函数退出后会自动释放所占用的内存。所以大量的全局变量会额 外增加内存消耗。

全局变量的应用会降低函数的通用性,函数在执行的时候过多依赖于全局变量,不 利于函数的重复利用。

全局变量可以被作用域内所有的函数直接引用,可以增加函数间数据联系的途径, 但同时加强了函数模块之间的数据联系,使这些函数的独立性降低,对其中任何一个函数的 修改都可能会影响到其它函数的执行结果,函数之间过于紧密的联系不利于程序的维护的。

变量的存储类别

变量的存储类别分为自动、静态、寄存器和外部这四种。

函数中的局部变量,如果不加 static 这个关键字来修饰,都属于自动变量,也叫做动态 存储变量。这种存储类别的变量,在调用该函数的时候系统会给他们分配存储空间,在函数 调用结束后会自动释放这些存储空间。动态存储变量的关键字是 auto,但是这个关键字是可 以省略的

那么与动态变量对应的就是静态变量。首先,全局变量均是静态变量,此外,还有一种 特殊的局部变量也是静态变量。

手把手教你学51单片机-变量进阶与点阵LED相关推荐

  1. 手把手教你学51单片机——函数进阶与按键

    目录 写在前面 一.单片机最小系统解析 1.1电源 1.2晶振 1.3复位电路 二.C语言--函数 2.1函数的调用 2.2函数的形参和实参 三.按键 3.1独立按键 3.2独立按键控制led数码管显 ...

  2. 手把手教你学51单片机-点亮你的LED

    单片机内部资源 Flash--程序存储空间.对于单片机来说 Flash 最大的意义是断电后数据 不丢失. RAM--数据存储空间.RAM 是单片机的数据存储空间,用来存储程序运行过程中产生的和需要的数 ...

  3. 第11章 UART 串口通信(手把手教你学51单片机pdf部分)

    手把手教你学51单片机-C语言版.pdf  

  4. c语言52单片机液晶屏显示,[手把手教你学51单片机C语言教程]22 LCD12864液晶屏显示.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspC/C++资料 [手把手教你学51单片机C语言教程]22 LCD ...

  5. 【手把手教你学51单片机】中断的优先级

    注:本文章转载自<手把手教你学习51单片机>!因转载需要原文链接,故无法选择转载! 如若侵权,请联系我进行删除!上传至网络博客目的为了记录自己学习的过程的同时,同时能够帮助其他一同学习的小 ...

  6. 数码管动态显示c语言,《手把手教你学51单片机-C语言》之六 中断与数码管动态显示...

    中断是单片机系统重点中的重点,因为有了中断,单片机就具备了快速协调多模块工作的能力,可以完成复杂的任务.本章将首先带领大家学习一些必要的C语言基础知识,然后讲解数码管动态显示的原理,并最终借助于中断系 ...

  7. 手把手教你学51单片机-c语言版期末考试,手把手从零教你学51单片机

    课程简介: 51单片机的教程及开发板真的很多,我曾经也从零学单片机,看过的视频教程及玩过的开发板也比较多,但很多都是为了卖发板而做视频教程.从头到尾的就每个模块做些例子,或者就送些例子,而例子中所涉及 ...

  8. 《手把手教你学51单片机》之十三------1602液晶与串口的应用实例

    第13章 1602液晶与串口的应用实例 理论上的内容要想逐步消化掌握,必须得通过大量的实践进行巩固,否则时间一长,极容易忘掉.尤其是一些编程相关的技巧,就是靠不停的写程序,不停的参考别人的程序慢慢积累 ...

  9. (学习笔记)手把手教你学51单片机:变量进阶与点阵LED

    一.变量的作用域 作用域:变量的有效范围.分为:局部变量和全局变量. 1.1局部变量 在函数内部声明的变量,只在本函数内部可以使用. 1.2全局变量 在函数外声明的变量就是全局变量. 二.变量的存储类 ...

最新文章

  1. 创新驱动未来,浪潮持续深耕信息安全市场
  2. 毕业BG(01背包问题)
  3. sdut-3332 数据结构实验之栈与队列五:下一较大值(一)
  4. Unable to locate package php5-curl
  5. ​手把手教你如何进行 Golang 单元测试
  6. 160523、Oracle建立表空间和用户
  7. 【职业生涯】这样的开发人员每个团队都想要
  8. mysql内部_MySQL SQL语句内部剖析
  9. poj1064 二分搜索 挑战程序设计竞赛
  10. 博文视点经典新书样章下载
  11. 个人h5第三方支付接口_个人免签支付接口系统搭建源码多种方式
  12. Android 获取图片研究
  13. JAVA线程池shutdown和shutdownNow的区别
  14. [线段树实现区间最值]HDU5306 Gorgeous Sequence
  15. firefox 3.0 beta 1 试用与下载
  16. 软件公司如何才能留住员工
  17. 搭建C++开发图像算法的环境——利用C++调用Pytorch训练后模型
  18. 宜信支付结算账户系统浅析
  19. Koordinator 1.0 正式发布:业界首个生产可用、面向规模场景的开源混部系统
  20. 中国地质大学的计算机专业咋样,中国地质大学武汉计算机专业好还是武汉理工大学的好...

热门文章

  1. android-配置文件AndroidManifest.xml详解
  2. android app根目录下cache,Android 缓存目录 Context.getExternalFilesDir()和Context.getExternalCacheDir()方法...
  3. 银河麒麟V10.1 使用root用户时自动重启pulseaudio服务
  4. 对游戏系统迭代的个人看法
  5. Java中Lambda表达式使用及详解
  6. HP大中华区总裁孙振耀退休感言(上)
  7. 一步步学习微软InfoPath2010和SP2010--第一章节--介绍InfoPath2010
  8. Bzoj 1596: [Usaco2008 Jan]电话网络
  9. 前端-表格英文单词不换行问题
  10. 基于java+ssm+mysql的高校后勤管理系统