§5 编写高质量的单片机C程序

高质量的单片机C程序代码运行效率高、可读性和可维护性强。在编写小型的单片机程序时,代码质量的重要性可能不是很明显。但如果要编写较大规模的程序,特别是多人合作编写程序时,这一点就变得十分重要了。本章内容以林锐的《高质量C++/C编程指南》为蓝本,针对单片机编程的实际各部进行了大量删节和改写。

5.1 文件结构

每个单片机C程序通常分为两种文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。程序的头文件以“.h”为后缀,定义文件以“.c”为后缀。 5.1.1 版权和版本的声明

版权和版本的声明位于头文件和定义文件的开头(参见示例5.1),主要内容有: (1)版权信息。

(2)文件名称,标识符,摘要。

(3)当前版本号,作者/修改者,完成日期。 (4)版本历史信息。

示例5.1 版权和版本的声明

5.1.2 头文件的结构

头文件由三部分内容组成:

(1)头文件开头处的版权和版本声明(参见示例5.1)。 (2)预处理块。 (3)函数声明等。

假设头文件名称为 graphics.h,头文件的结构参见示例5.2。

【规则5-1-2-1】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。

【规则5-1-2-2】用 #include 格式来引用标准库的头文件(编译器将从标准

单片机c语言编程规则,单片机C语言编程规则相关推荐

  1. 支持c语言编程的单片机,单片机的C语言编程(标准版).pptx

    单片机的C语言编程(标准版) 第03讲 单片机的C语言编程;1.1 C语言概述与最简单的C程序 ;1.1 C语言概述与最简单的C程序 ;二.C语言的程序结构;1.1.2 C语言与MCS-51单片机; ...

  2. 单片机如何使用?51单片机C语言编程实例有哪些?

    大家好,我是无际单片机编程的徐明,今天和大家一起探讨一下"单片机如何使用?" 单片机如何使用,我们要知道单片机在哪里使用? 单片机是很多电子产品的核心器件,它具有一定的逻辑判断和事 ...

  3. c语言图像浏览器,单片机采用浏览器进行监控将给软件的编程带来极大的便利...

    1 引言 互联网的技术大多数应用在商业领域的信息传递,但目前也开始越来越多地向工业控制领域发展.单片机以其体积小.功能强.灵活可靠而广泛应用于工业控制和电器产品中,远程控制是其重要的内容之一.现在,单 ...

  4. c++ 结构体初始化_单片机C语言 - 基于结构体的面向对象编程技巧

    单片机C语言 - 基于结构体的面向对象编程技巧 一.面向对象 面向对象是软件开发方法,是相对于面向过程来讲的.通过把数据与方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式 ...

  5. 单片机汇编语言编程_单片机编程用C语言还是汇编?

    单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂.目前功能稍微复杂一点的电子产品,都是以单片机为核心,再加以不通的外设电路实现不通的功能需求.单片 ...

  6. 51单片机c语言程序控制,51单片机C语言编程基础及实例.pdf

    基础知识: 51 单片机编程基础 第一节:单数码管按键显示 第二节:双数码管可调秒表 第三节:十字路口交通灯 第四节:数码管驱动 第五节:键盘驱动 第六节:低频频率计 第七节:电子表 第八节:串行口应 ...

  7. dac梯形波c语言编程,单片机项目第11章单片机与AD接口.ppt-资源下载在线文库www.lddoc.cn...

    单片机项目第11章 单片机与AD接口.ppt 第11章 单片机与AD接口,11.1 项目内容数字电压表的设计 11.2 程序设计 11.3 相关知识,11.1 项目内容数字电压表的设计,11.1.1 ...

  8. 单片机c语言编程下载,单片机C语言编程.doc

    单片机C语言编程.doc 单片机C语言编程指令格式 功能简述 字节数 周期 一.数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,Ri ...

  9. 单片机技术与c语言编程教学大纲,单片机应用技术(C语言)教学大纲.doc

    单片机应用技术(C语言)教学大纲 一.说明 1.课程的性质和内容 本课程是高级技校应用电子专业的专业课.主要内容包括:认识单片机,点亮彩灯,简易数字钟,简易计算器,键控彩灯,简易频率计,单片机双机通信 ...

  10. python微控制器编程从零开始-单片机可以使用Python语言来控制了!

    告诉广大Python爱好者一个好消息,单片机可以使用Python语言来控制了. Arudino虽然在开源硬件领域非常流行,但是对于不懂C/C++编程语言的玩家来说,还是需要一段学习时间. Damien ...

最新文章

  1. CentOS 不区分大小写的搜索
  2. 图像“位操作”有什么用?
  3. 【转载】关于HttpClient 接口方法总结
  4. Flask从入门到做出一个博客的大型教程
  5. 本期课程已满,欢迎关注后续期次 | 临床基因组学数据分析实战助力解析Case,快速发表文章...
  6. 从中关村的小小柜台,但目前市值千亿元的公司
  7. 摩拜开锁系统是用什么服务器,摩拜昨晨现“开锁难” 市民:系统需更稳定
  8. 线性代数(9):线性正交
  9. 复制pdf文本出现大量换行的解决办法
  10. excel如何把顺序倒过来_excel倒序怎么操作
  11. 2018引汉济渭计算机监控系统,基于数字水网的引汉济渭受水区水资源调配业务化研究与应用...
  12. 考研数学多重积分计算秒杀(对称性化简以及雅可比球坐标)
  13. 算法实现: OTP(One-Time Pad) 一次一密密码本 加解密
  14. sin60度 用计算机,cos60度等于多少啊
  15. Arch Linux/其他 Linux 下给 Link2/LPC-Link2 调试器刷 CMSIS-DAP 和 J-Link 固件
  16. apicloud (第五篇 bmap百度地图一键回到当前位置)
  17. win10显示隐藏文件_如何在Mac上显示隐藏文件——macw
  18. thinkpad 10 linux驱动,Ubuntu 10.04安装Thinkpad指纹软件
  19. ISO 16750.3-2012道路车辆电子电气部件的环境试验 第三部分
  20. edge浏览器flash插件怎么启用

热门文章

  1. Java——面向对象编程
  2. 详解FFplay音视频同步
  3. Axure9 最新授权码,持续更新中
  4. WHQL认证公司 提供高品质whql认证服务
  5. python catia_使用Python脚本的CATIA V5自动化
  6. oracle存档模式,oracle归档模式管理
  7. 农商行信息化建设过程中存在哪些问题?
  8. (重点)可导、连续、可微+(浅谈)可积 的关系以及例题深化理解
  9. 快速撤销excel文件的工作表保护
  10. FMEA软件——SunFMEA,企业品质管理专家