电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>可编程逻辑>编程规范及原则对于嵌入式开发的工程师来说真的很重要资料下载

编程规范及原则对于嵌入式开发的工程师来说真的很重要资料下载

2021-04-19 | pdf | 149.38KB | 次下载 | 3积分

资料介绍

Ⅰ 写在前面 不知道大家有没有这样的感受:看到不规范(杂乱差)的代码,瞬间就没有看下去的欲望了。 相信大家看到标题都应该能明白编程的规范及原则对于每一个软件开发的工程师来说是多么重要。 初学者编写测试程序、小的模块程序也许不能感受它的重要性;但有经验及大型项目开发的人就知道程序的规范性对他们来说是有多么的重要。 Ⅱ 关于编程规范及原则 编程规范也就是编写出简洁、可维护、可靠、可测试、高效、可移植的代码,提高产品代码的质量。 本文针对嵌入式,主要结合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. 用正确的反义词组命名具有互斥意义的变量或相反动作的函数等;
下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1DC电源插座图纸
  2. 0.67 MB   |  3次下载  |  免费
  3. 2AN-1267: 使用ADSP-CM408F ADC控制器的电机控制反馈采样时序
  4. 1.41MB   |  3次下载  |  免费
  5. 3AN158 GD32VW553 Wi-Fi开发指南
  6. 1.51MB   |  2次下载  |  免费
  7. 4AN148 GD32VW553射频硬件开发指南
  8. 2.07MB   |  1次下载  |  免费
  9. 5AN111-LTC3219用户指南
  10. 84.32KB   |  次下载  |  免费
  11. 6AN153-用于电源系统管理的Linduino
  12. 1.38MB   |  次下载  |  免费
  13. 7AN-283: Σ-Δ型ADC和DAC[中文版]
  14. 677.86KB   |  次下载  |  免费
  15. 8SM2018E 支持可控硅调光线性恒流控制芯片
  16. 402.24 KB  |  次下载  |  免费

本月

  1. 1ADI高性能电源管理解决方案
  2. 2.43 MB   |  450次下载  |  免费
  3. 2免费开源CC3D飞控资料(电路图&PCB源文件、BOM、
  4. 5.67 MB   |  138次下载  |  1 积分
  5. 3基于STM32单片机智能手环心率计步器体温显示设计
  6. 0.10 MB   |  130次下载  |  免费
  7. 4使用单片机实现七人表决器的程序和仿真资料免费下载
  8. 2.96 MB   |  44次下载  |  免费
  9. 5美的电磁炉维修手册大全
  10. 1.56 MB   |  24次下载  |  5 积分
  11. 6如何正确测试电源的纹波
  12. 0.36 MB   |  18次下载  |  免费
  13. 7感应笔电路图
  14. 0.06 MB   |  10次下载  |  免费
  15. 8万用表UT58A原理图
  16. 0.09 MB   |  9次下载  |  5 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935121次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420062次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233088次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191367次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183335次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81581次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73810次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65988次下载  |  10 积分