- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C51变量说明
变量是在程序运行过程中其值可以改变的量。在C51中,在使用变量前必须对变量进行定义,指出变量的数据类型和存储模式,以便编译系统为它分配相应的存储单元。变量的定义格式如下:
[存储种类] 数据类型说明符 [存储器类型] 变量名1[=初值],变量名2[=初值]…;
(1)格式说明
1)存储种类是指变量在程序执行过程中的作用范围。C51变量的存储种类有四种,分别是自动(auto)、外部(extern)、静态(static)和寄存器(register)。定义变量时,如果省略存储种类,则该变量默认为自动(auto)变量。
用auto定义的变量作用范围仅在定义它的函数体或复合语句内部有效。
用extern定义的变量称为外部变量,其作用范围为整个程序。
用static定义的变量称为静态变量。其作用范围仅在定义的函数体内有效,一直存在,再次进入该函数时,变量的值为上次结束函数时的值。
用register定义的变量称为寄存器变量,处理速度快,但数目少。C51编译器编译时能自动识别程序中使用频率最高的变量,并自动将其作为寄存器变量,用户无需专门声明。
2)在定义变量时,必须通过数据类型说明符指明变量的数据类型,指明变量在存储器中占用的字节数。可以是基本数据类型说明符,也可以是组合数据类型说明符,还可以是用typedef和#define定义的类型别名。别名要按用户自定义标识符的原则命名。例如:使用“#define uchar unsigned char”定义了“uchar”,则可以使用这个类型定义变量。
3)存储器类型是用于指明变量所处的单片机的存储器区域情况。省略则默认为data类型,即片内前128字节的RAM;bdata为可位寻址内部数据存储器,定义的变量可以用sbit定义位变量访问其中的二进制位;idata可以访问51的内部256字节的RAM;code定义的变量存储在程序存储器,只能读出不能写入,相当于常量。
4)变量名是C51区分不同变量,为不同变量取的名称,也就是用户自定义标识符,要遵循标识符的命名原则。
5)允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号隔开,类型说明符与变量名之间至少用一个空格间隔。
6)最后一个变量名之后必须以“;”号结尾。
7)变量定义必须放在变量使用之前。一般放在函数体的开头部分。
(2)变量定义示例
int a,b,c=2; //a,b,c为整型变量,并将变量c的初值赋为2
long x,y; //x,y为长整型变量
unsigned char p,q; //p,q为无符号字符型变量
float t=-2.3; //定义实型变量t,并给t赋初值为-2.3
code float Vref=2.5;//定义变量Vref为实型,初始值为2.5,只读
一、变量的作用范围
从变量的作用范围来看,有全局变量和局部变量之分。
全局变量是指在程序开始处或各个功能函数的外面定义的变量,在程序开始处定义的全局变量对于整个程序都有效,可供程序中所有函数共同使用;而在各功能函数外面定义的全局变量只对从定义处开始往后的各个函数有效,只有从定义处往后的那些功能函数才可以使用该变量,定义处之前的函数则不能使用它。
局部变量是指在函数内部或以花括号{ }围起来的功能块内部所定义的变量,局部变量只在定义它的函数或功能块以内有效,在该函数或功能块以外则不能使用它。局部变量可以与全局变量同名,但在这种情况下局部变量的优先级较高,而同名的全局变量在该功能块内被暂时屏蔽。
二、变量的生存期
变量的生存期即该变量存在的时间。从变量的存在时间来看又可分为静态存储变量和动态存储变量。静态存储变量是指该变量在程序运行期间其存储空间固定不变;动态存储变量是指该变量的存储空间不确定,在程序运行期间根据需要动态地为该变量分配存储空间。
在定义变量时,可以指定变量的存储种类。在C51中,变量的存储种类有四种:自动(auto)、外部(extern)、静态(static)和寄存器(register)。
1、自动变量
用关键字auto作存储类型说明的局部变量(包括形参)称为自动变量。
自动变量的默认范围在定义它的函数体或符合语句内部,只有在定义它的函数被调用,或是定义它的复合语句被执行时,编译器才为其分配内存空间,开始其生存期。当函数调用结束返回,或复合语句执行结束时,自动变量所占用的内存空间就被释放,其生存期结束,占用的内存空间有可能分配给其他函数中定义的自动变量。
当函数被再次调用或符合语句被再次执行时,自动变量所对应的内存空间的值将不确定,有可能不是上次运行时的值,因而必须被重新赋值。
2、外部变量(extern)
按照默认规则,凡是在所有函数之前,在函数外部定义的变量都是外部变量,定义时可以不写e
您可能关注的文档
- IP包头结构详解.doc
- 中国龙PK西方龙.doc
- 高二英语Unit5 The British Isles知识点总复习.doc
- 超临界水氧化技术1.doc
- 寄存器(register).doc
- 超临界流体萃取装置操作规范.doc
- 各种库函数说明.doc
- 高中英语 Unit3 Computers单元课时质量测试(带解析) 新人教版必修2.doc
- 黄冈长江大桥今日合龙 为世界跨度最大公铁两用桥.docx
- 高中习题 英语课时作业8.doc
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
文档评论(0)