- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 单片机C程序简介
3.5.3 函数变量的作用域? 按照变量的有效作用范围可划分为局部变量和全局变量。 1. 局部变量 在函数内部定义的变量称为局部变量。局部变量仅在被定义的函数模块内部起作用。 2. 全局变量 在所有函数模块中起作用的变量称为全局变量或是外部变量。全局变量定义在主函数的顶部,因此在主函数调用的所有函数模块中都有效。如果在一个程序模块文件中引用另一个程序模块文件中定义的变量时,需要用extern进行说明,外部变量的说明与定义不同,外部变量只能定义一次(在所有函数之外),但是可以说明多次,就是在引用该外部变量的函数中都需要说明。 (1)如果全局变量与某一函数中的局部变量同名,则局部变量优先于全局变量。 (2)全局变量一旦定义,就占用固定的存储空间,就是说在程序运行中,这些存储空间不能释放以供他用。 (3)全局变量在函数模块外定义,所以不利于函数移植。 (4)大量使用全局变量,使程序难以调试。 (5)全局变量的初始化语句,增加了程序的长度。 (6)全局变量的特点是多个函数共同使用,因此必须注意各函数对其值操作的顺序性。 3.6.1 编译预处理 C预处理器扩展了C编译环境的范围。所有的预处理指令以标志#开头,每一条预处理指令必须有它自己的一行。 1. #define #define语句又称为宏定义语句。 #define指令用来定义一个标识符和一个字符序列,这些标识符与字符序列可以替代每一次在源文件中碰到的标识符,该指令格式如下: #define 标识符 常量表达式 //注意没有分号 【例】#define TRUE 1 //用TRUE表示1 3.6 其它C语句 终止宏定义语句:#undef 执行该语句后,#define语句定义的标识符不再有效。 通常,C程序中用大写字母代表被定义的标识符,在阅读程序时,一目了然地知道这是一个宏替换。 #define 语句还可以带有参数,格式如下: #define 标识符(参数表) 表达式 【例】 #define s(r) 3.14*r*r // 注意s与(r)之间不能有空格 调用时,需要用实参替代形参: int area; area=s(5); 【例】#define MULTI(x,y) (x*y) int multi; multi=MULTI(5,6); // multi=30 2. 文件包含 ( include ) #include语句可以在一个源文件A中包含其他源文件中的内容,这样源文件A就是由多个源文件组成,文件包含的格式如下: ① #include 文件名 尖括号表示被包含文件的搜索方式由编译器控制,这意味着被包含文件在特殊的文件夹中。 ② #include“文件名” 双引号表示首先搜索当前工作文件夹,若是没有找到文件,则搜索尖括号情况下的文件夹。 经常使用的包含文件是后缀为h的文件,例如,51单片机的头文件: #include AT89X51.h 一般来说,对应每个C源文件,都有一个对应的扩展名为h文件,该文件中包含C文件中的常量、数据结构、函数、全局变量的声明等。 Atmel公司芯片的头文件 3.6.2 用typedef重定义数据类型 (夏路易P42) 类型定义可以把已有的类型标识符定义成新的类型表示符,定义后,新的类型标识符就可以作为原标识符使用,相当于给老的类型标识符改了一个名字。 格式: typedef 原类型名 新类型名; 例如:typedef int integer; 定义后,就可以用新类型名声明变量: integer m,n; 3.7.1 特殊功能寄存器头文件 51系列单片机中用到很多特殊功能寄存器,将这些寄存器地址以及寄存器中的位地址用关键字说明,则关键字与寄存器地址、寄存器中的位地址之间关系的说明文件就是头文件。 每种类型的单片机头文件都是不同的,单片机生产厂家提供的头文件放在keil\C51\inc文件夹中,例如,Atmel公司芯片的头文件如图所示。用户也可以自己编写头文件,例如使用某些公司的51内核单片机时,其特殊寄存器的大部分关键字都已经在标准51头文件定义了,则只需要在源文件中,直接定义其余关键字就可以了。 图2-6 配置文件所在的文件夹 3.7
您可能关注的文档
- 农村供电所长管理技能培训教材 习.doc.doc
- 年最新电大机电控制与可编程序控制器技术课程形成性考核册作业一、二、三、四资料汇总.doc
- 没有规矩 不成方圆课件小学品德与社会粤教课标版三年级下册课件.ppt
- mba社会实践活动报告_v.doc
- m低压湿式外导架直式气柜制作安装防腐工程施工方案.doc
- Industrial Communication SystemsField Bus principl:的工业通信systemsfield总线原理.ppt
- 主墩套箱、承台、墩身施工作业指导书.doc
- 不等式的性质 课件人教新课标七年级下 ppt初中数学.ppt
- 商业银行资产负债管理策略商业银行管理理论PPT 页 .ppt
- 学年度史店学校阳光体育活动计划.doc
文档评论(0)