- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§5 编写高质量的单片机C程序
收集于网络
高质量的单片机C程序代码运行效率高、可读性和可维护性强。在编写小型的单片机程
序时,代码质量的重要性可能不是很明显。但如果要编写较大规模的程序,特别是多人合作
编写程序时,这一点就变得十分重要了。本章内容以林锐的《高质量C++/C编程指南》为蓝
本,针对单片机编程的实际各部进行了大量删节和改写。
5.1 文件结构
每个单片机C程序通常分为两种文件。一个文件用于保存程序的声明(declaration),
称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)
文件。程序的头文件以“.h”为后缀,定义文件以“.c”为后缀。
5.1.1 版权和版本的声明
版权和版本的声明位于头文件和定义文件的开头(参见示例5.1),主要内容有:
(1)版权信息。
(2)文件名称,标识符,摘要。
(3)当前版本号,作者/修改者,完成日期。
(4)版本历史信息。
/*
* Copyright (c) 2001,上海贝尔有限公司网络应用事业部
* All rights reserved.
*
* 文件名称:filename.h
* 文件标识:见配置管理计划书
* 摘 要:简要描述本文件的内容
*
* 当前版本:1.1
* 作 者:输入作者(或修改者)名字
* 完成日期:2001年7月20日
*
* 取代版本:1.0
* 原作者 :输入原作者(或修改者)名字
* 完成日期:2001年5月10日
*/
示例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 filename.h 格式来引用标准库的头文件(编译器将从标准
中国科学技术大学业余无线电协会64
51 单片机C 语言编程入门——Easy 51 Kit Pro 配套学习资料
库目录开始搜索)。
【规则5-1-2-3】用 #include “filename.h”格式来引用非标准库的头文件(编译器将从用户
的工作目录开始搜索)。
〖建议5-1-2-1〗头文件中只存放“声明”而不存放“定义”。
〖建议5-1-2-2〗不提倡使用全局变量,尽量少在头文件中出现象extern int value这类声明。
但是,全局变量是中断处理函数与外界程序进行数据交换的唯一途径,因此,几乎每一个单
片机程序都会定义全局变量。在单片机C程序中,全局变量使用的频率要比普通的C程序高,
但仍应遵守能不用全局变量的地方就不用全局变量的原则。
// 版权和版本声明见示例1-1,此处省略。
#ifndef GRAPHICS_H // 防止graphics.h被重复引用
#define GRAPHICS_H
#include math.h // 引用标准库的头文件
#include “myheader.h” // 引用非标准库的头文件
void Function1(…); // 全局函数声明
#endif
示例5.2 C头文件的结构
5.1.3 定义文件的结构
定义文件有三部分内容:
(1) 定义文件开头处的版权和版本声明(参见示例5.1)。
(2) 对一些头文件的引用。
(3) 程序的实现体(包括数据和代码)。
假设定义文件的名称为 graphics.c,定义文件的结构参见示例5.3。
// 版权和版本声明见示例5.1,此处省略。
#include “graphics.h” // 引用头文件
…
// 全局函数的实现体
void Function1(…)
{
…
}
示例5.3 C定义文件的结构
5.1.4 目录结构
如果一个程序的头文件数目比较多(如超过十个),通常应将头文件和定义文件分别保
存于不同的目录,以便于维护。
例如可以将头文件保存于include目录,将定义文件保存于source目录(可以是多级目
录)。
中国科学技术大学业余无线电协会65
51 单片机C 语言编程入门——Easy 51 Kit Pro 配套学习资料
5.2 程序的版式
版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序
风格的重要构成因素。
程序的版式好比为“书法”。好的“书法”可让人对程序一目了然,看得兴致勃勃。差
的程序“书法”如螃蟹爬行,让人看得索然无味,更令维护者烦恼有加。
5.2.1 空行
空行起着分隔程序段落的作用。空行得体(不过多也不过少)将
文档评论(0)