嵌入式编程规范要点.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式编程规范 1 基本要求 程序结构清晰,简单易懂,单个函数的程序行数不得超过100行,每行代码不得超过100列。 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。 尽量使用标准库函数和公共函数。 不要随意定义全局变量,尽量使用局部变量。 使用括号以避免二义性。 2 可读性要求 可读性第一,效率第二。 保持注释与代码完全一致。 每个源程序文件,都有文件头说明,说明规格见规范。 每个函数,都有函数头说明,说明规格见规范。 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。 常量定义(DEFINE)有相应说明。 处理过程的每个阶段都有相关注释说明。 在典型算法前都有注释。 用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为 4个字节。 循环、分支层次不要超过五层。 注释可以与语句在同一行,也可以在上行。 空行和空白字符也是一种特殊注释。 一目了然的语句不加注释。 注释的作用范围可以为:定义、引用、条件分支以及一段代码。 注释行数(不包括程序头和函数头说明部份)应占总行数的 1/5 到 1/3 。 3 结构化要求 禁止出现两条等价的支路。 禁止GOTO语句。 用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RETURN。 用 CASE 实现多路分支。 避免从循环引出多个出口。 函数只有一个出口。 不使用条件赋值语句。 避免不必要的分支。 不要轻易用条件分支去替换逻辑表达式。 4 正确性与容错性要求 程序首先是正确,其次是优美。 无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。 所有变量在调用前必须被初始化。 对所有的用户输入,必须进行合法性检查。 不要比较浮点数的相等,如: 10.0 * 0.1 == 1.0 , 不可靠 程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等。 单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。 5 可重用性要求 重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。 公共控件或类应考虑OO思想,减少外界联系,考虑独立性或封装性。 公共控件或类应建立使用模板。 6 编码具体规范 6. 1 排版 程序块要采用缩进风格编写 (1)缩进的空格数为4个。 (2)函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。示例: int delch(char str[ ], char c) { int i, j; for (i = j = 0; str[i] != \0 i++) { if (str[i] != c) str[j++] = str[i]; } str[j] = \0 } (3)在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 大括号‘{’和‘}’的使用 (1)程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。 示例:如下例子不符合规范。 for (...) { ... /* program code */ } if (...) { ... /* program code */ } void example_fun( void ) { ... /* program code */ } 应如下书写。 for (...) { ... /* program code */ } if (...) { ... /* program code */ } void example_fun( void ) { ... /* program code */ } (2)if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{ }。 示例:如下例子不符合规范。 if (pUserCR == NULL) return; 应如下书写: if (pUserCR == NULL) { return; } 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如-),后不应加空格。 说明:采用这种松散方式编写代码的目的是

文档评论(0)

LOVE爱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5341224344000002

1亿VIP精品文档

相关文档