资料介绍
Ⅰ 写在前面
不知道大家有没有这样的感受:看到不规范(杂乱差)的代码,瞬间就没有看下去的欲望了。
相信大家看到标题都应该能明白编程的规范及原则对于每一个软件开发的工程师来说是多么重要。
初学者编写测试程序、小的模块程序也许不能感受它的重要性;但有经验及大型项目开发的人就知道程序的规范性对他们来说是有多么的重要。
Ⅱ 关于编程规范及原则
编程规范也就是编写出简洁、可维护、可靠、可测试、高效、可移植的代码,提高产品代码的质量。
本文针对嵌入式,主要结合C语言编程的规范给大家讲述。
1. 头文件
对于C语言来说,头文件的设计体现了大部分的系统设计,不合理的头文件布局是编译时间过长的原因。
有很多人将工程中所有的头文件包含在一个include.h文件中,然后在每一个.c源代码文件中包含include.h头文件,这样做可以让代码看上去简洁,但实际忽视了编译效率问题,而且代码的可移植性也不好。
原则:
A. 头文件中适合放置接口的声明,不适合放置实现;
B. 头文件应当职责单一;
C. 头文件应向稳定的方向包含。
规则:
A. 每一个.c文件应有一个同名.h文件,用于声明需要对外公开的接口;
B. 禁止头文件循环依赖;
C. .c/.h文件禁止包含用不到的头文件;
D. 头文件应当自包含;
E. 总是编写内部#include保护符( #define 保护);
F. 禁止在头文件中定义变量;
G. 只能通过包含头文件的方式使用其他.c提供的接口,禁止在.c中通过extern的方式使用外部函数接口、变量;
H. 禁止在extern "C"中包含头文件。
建议:
A. 一个模块通常包含多个.c文件,建议放在同一个目录下,目录名即为模块名。为方便外部使用者,建议每一个模块提供一个.h,文件名为目录名;
B. 如果一个模块包含多个子模块,则建议每一个子模块提供一个对外的.h,文件名为子模块名(降低接口使用者的编写难度);
C. 头文件不要使用非习惯用法的扩展名,如.inc;
D. 同一产品统一包含头文件排列方式。
2. 函数
函数设计的要点:编写整洁的函数,同时把代码有效组织起来。
函数整洁的要求:代码简单直接、不隐藏设计者的意图、用干净利落的抽象和直截了当的控制语句将函数有机组织起来。
原则:
A. 一个函数仅完成一件功能;
B. 重复代码应该尽可能提炼成函数.
规则:
A. 避免函数过长,新增函数不超过100行(非空非注释行);
B. 避免函数的代码块嵌套过深,新增函数的代码块嵌套不超过4层;
C. 可重入函数应避免使用共享变量;若需要使用,则应通过互斥手段(关中断、信号量)对其加以保护;
D. 对参数的合法性检查,由调用者负责还是由接口函数负责,应在项目组/模块内应统一规定;
E. 对函数的错误返回码要全面处理;
F. 设计高扇入,合理扇出(小于7)的函数;
G. 废弃代码(没有被调用的函数和变量)要及时清除。
建议:
A. 函数不变参数使用const;
B. 函数应避免使用全局变量、静态局部变量和I/O操作,不可避免的地方应集中使用;
C. 检查函数所有非参数输入的有效性,如数据文件、公共变量等;
D. 函数的参数个数不超过5个;
E. 除打印类函数外,不要使用可变长参函数;
F. 在源文件范围内声明和定义的所有函数,除非外部可见,否则应该增加static关键字。
3. 标识符命名与定义
程序命名是一个关键,如果命名不规范,自己写的代码,时间长了恐怕连自己都不知道是什么意思了。
3.1通用命名规则
常见命名风格:
A. 用下划线„_‟分割,如text_mutex;
B. 大小写字母混用,如ReadRFCText。
规则:
A. 标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解;
B. 除了常见的通用缩写以外,不使用单词缩写,不得使用汉语拼音;
C. 产品/项目组内部应保持统一的命名风格.
建议:
A. 用正确的反义词组命名具有互斥意义的变量或相反动作的函数等;
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 嵌入式工程师入门的那些事
- 学习嵌入式开发前景问题解答
- 嵌入式开发教程哪家好?linux嵌入式系统开发
- 嵌入式工程师培训技能 嵌入式开发学什么?
- 成为一名优秀的嵌入式开发工程师有哪些要求?
- 学习嵌入式开发怎么样?嵌入式开发工程师的职责有哪些?
- python做嵌入式开发_Python和嵌入式的区别是什么?可以做嵌入式开发吗?
- 嵌入式开发资料免费分享
- 嵌入式工程师是如何炼成的
- 10年研发嵌入式工程师悟出的道理资料下载
- 嵌入式开发7个易操作的技巧资料下载
- 如何成为高级嵌入式工程师?资料下载
- 如何快速熟练掌握嵌入式开发嵌入式开发工程师需要做哪些事情
- 嵌入式开发中CPU大端和小端模式的详细资料和程序分析讲解
- 嵌入式开发Linux网络编程培训资料的详细资料免费下载 34次下载
- fpga是嵌入式开发吗 706次阅读
- 嵌入式开发的产品有哪些_嵌入式开发的流程 1w次阅读
- 英创信息技术关于嵌入式工程师建议 1613次阅读
- 详细盘点工程师嵌入式开发必备工具让工作事半功倍 5575次阅读
- 嵌入式系统的七个开发技巧资料合集 2970次阅读
- 为什么说嵌入式开发比单片机要难很多? 5637次阅读
- 嵌入式软件开发编程规范及原则 6536次阅读
- 嵌入式开发好学吗_嵌入式开发职业发展方向是什么 8950次阅读
- 嵌入式软件工程师和嵌入式硬件工程师有什么区别 7w次阅读
- 学嵌入式开发难吗_学好嵌入式开发需要多久 1.5w次阅读
- 学嵌入式开发入门_学嵌入式开发需要看哪些书籍 2.4w次阅读
- 成为一个正式的嵌入式开发工程师,需要知道的嵌入式系统开发7大技巧 1w次阅读
- 嵌入式开发环境的搭建 8305次阅读
- 嵌入式开发就业前景分析_嵌入式领域的职业发展方向 1.8w次阅读
- 工程师视角:学习嵌入式的十三个重要法则 1430次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多