嵌入式软件编程书写规范

上传人:j****9 文档编号:47837037 上传时间:2018-07-05 格式:PDF 页数:32 大小:474.66KB
返回 下载 相关 举报
嵌入式软件编程书写规范_第1页
第1页 / 共32页
嵌入式软件编程书写规范_第2页
第2页 / 共32页
嵌入式软件编程书写规范_第3页
第3页 / 共32页
嵌入式软件编程书写规范_第4页
第4页 / 共32页
嵌入式软件编程书写规范_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《嵌入式软件编程书写规范》由会员分享,可在线阅读,更多相关《嵌入式软件编程书写规范(32页珍藏版)》请在金锄头文库上搜索。

1、嵌入式软件编程书写规范 - 1 - 嵌入式软件编程书写规范 文档号: 版本 : V1.00 撰写 : R.Y. 日期:2011-04-14 单位 : 审阅: 日期: 单位: 声明: 该文档为作者从其它公共文档和个人经验中总结的,仅供参考,欢迎查阅和修改。 嵌入式软件编程书写规范 - 2 - 修 改 记 录 Version Date By Description 1.00 2011.1.24 R.Y. create document 嵌入式软件编程书写规范 - 3 - 目 录 一、规范原则 4 二、代码布局 5 基本布局 5 对齐 7 空行空格 9 断行 10 三、注释 11 四、命名规则 12

2、 五、变量、常量、宏定义与类型 15 六、表达式与语句 18 七、函数与过程 20 参数 20 返回值 21 内部实现 21 函数调用 22 八、可靠性 23 九、可测试性 25 十、断言与错误处理 26 附录A 编程模板 27 附录B 规范检查表 32 嵌入式软件编程书写规范 - 4 - 本规范适用于嵌入式 C/C+语言。下列规范包括有规范,建议,说明,例子。 一、规范原则 原则一:避免使用特殊编程技巧,保持代码简单清晰。 说明:软件单次使用周期短,贯穿设计,测试,生产,售后,版本升级等环节,因此需具有较强可读性,可维护性。 原则二:模块化编程,少用甚至不用全局变量,GOTO 语句。 说明:

3、模块化有利于增强程序的正确性,可维护性,移植性。全局变量和 GOTO 语句则违反了模块化的原则,因此避免使用。 原则三:尽量调用库文件,修改老版本代码,完善代码质量。 说明: 对于模块化程序,因为相对单一功能的程序都是模块化的,所以对于功能整合的程序来说,避免浪费时间去重写单一功能的代码, 尽量调用库文件; 对于版本较老的,尽量完善老版本,提高质量。 嵌入式软件编程书写规范 - 5 - 二、 代码布局 代码布局可体现代码的逻辑结构,关系到代码的可读性,正确性,可维护性,连续性。更重要的是,统一的代码布局,有利于提高整个软件开发团队的开发速度,有利于提高软件开发质量。对于个人则体现出个人编程修养

4、。 说明:以下内容某些节若不需要,可以忽略,但其他节应保持次序。 基本布局 【规范-1】 :头文件的统一布局格式。 #ifndef _文件名_H(全大写) #define _文件名_H(全大写) 其它条件编译选项 #include (依次为标准库头文件,非标准库文件) 全局 常量声明 全局 宏声明 全局 数据类型声明 全局 变量声明 全局 函数原型声明 类定义c+ 模板(template,包括类模板和函数模板)c+ #endif /* _文件名_H */ 注意事项: 1、头文件通过宏定义来避免重复包含 2、包含标准库头文件用尖括号,包含非标准库头文件用双引号” ”。 嵌入式软件编程书写规范 -

5、 6 - 【规范 2-2】 :源文件的统一布局格式。 #include (依次为标准库头文件,非标准库文件) 文件内部 常量定义 文件内部 宏定义 文件内部 数据类型定义 文件内部 本地变量定义(静态全局变量) 函数原型定义 类的实现c+ 【规范 2-3】 :类的定义及实现的统一布局格式。 类的定义(在定义文件中)按如下顺序书写: 公有属性 公有函数 保护属性 保护函数 私有属性 私有函数 类的实现(在实现文件中)按如下顺序书写 构造函数 析构函数 公有函数 保护函数 私有函数 嵌入式软件编程书写规范 - 7 - 【规范-4】 :使用注释块分离上下定义。 /* * xxxxxx * */ 对齐

6、 【规范 2-5】 :if, else, else if, for, do, while, switch 等语句自占一行;执行语句作为程序块,无论多少,都加上大括号 ;执行语句缩进 4 个空格的距离进行对齐。 if(xxx) code block; 注意事项: 1、执行语句与大括号的对齐不采用 TAB 键,而采用 4 个空格。 2、case 语句的执行块也同样要缩进对齐。 3、do while语句做如下应用时,while不单独占一行。 do code block; while(condition); 嵌入式软件编程书写规范 - 8 - 【规范 2-6】 :程序块的分界符和要独占一行,并且位于同

7、一列,同时和引用它们的语句左对齐, 内的代码要缩进对齐。 注:声明类的时候,public、protected、private 关键词与分界符 对齐,这些部分的内容要进行缩进。 class CCout public: code block; private: code block; 【规范 2-7】 :对齐时,禁止使用 TAB 键,使用空格进行缩进。缩进距离为 4 个空格。 【规范 2-8】 :定义指针类型的变量时,星号*放在变量名前。 int *var;/采用 int* var;/不采用 【规范 2-9】 :将关系较为紧密的代码放在相邻,并用注释行分离。 /* xxxxx */ code bl

8、ock_11 code block_12 /* xxxxx */ code block_21 嵌入式软件编程书写规范 - 9 - 【规范 2-10】 :结构型数组,多维数组等相似数据类型,初始化时,按照矩阵结构分行书写。 【规范 2-11】 :相关的赋值语句的等号,宏定义的值等对齐。 #define A a #define AA aa #define AAA aaa 空行空格 【规范 2-12】 :不同逻辑程序块之间使用空行隔开。 【规范 2-13】 :一元操作符(如 ! , , + , - , * , 【规范 2-14】 :多元运算符前后至少加一个空格。 a += 1; 【规范 2-15】

9、:关键词之后留一个空格,再紧跟左括号”(”。 【规范 2-16】 : 左 括 号”(”向后紧跟; 右括号”)”、 逗 号 ”,”、分号”;”向前紧跟; 紧跟处不加空格。 逗号”,”之后要加空格,分号”;”不是行结束符号时要加空格。 例子中的 凵 代表空格。 for 凵(i 凵=凵 0;凵 i 凵 . 从左至右 ! + - (类型) sizeof + - * 正例:if (bFlag) /表示 bFlag 为真 if (!bFlag) /表示 bFlag 为假 反例:if (bFlag = True) 【规范 6-3】 :不可将浮点变量用“=”或“!=”与任何数字比较。而应采用“=” 。 说明:

10、float 和 double 类型的变量,都有精度限制。 【规范 6-4】 :应当将指针变量用“=”或“!=”与 NULL 比较,勿直接跟 0 比较。 说明:虽然 NULL 的值与 0 相同,但意义不同,应用时应当避免误解指针变量为其它类型变量。 【规范 6-5】 :在进行比较时,将常量放在比较运算符的左边。 说明:采用这种方式,让编译器去发现错误,可以避免一些手写错误,比如将“=”写成“=” 。 嵌入式软件编程书写规范 - 20 - 【建议 6-1】 如果循环体内存在逻辑判断, 并且循环次数非常大,可先将逻辑判断移到循环体外。 正例:if (condition) for (); 反例:for () if (condition) 七、函数与过程 表达式与语句的注意事项和建议 参数 【规范 7-1】 :若函数没有参数,则用 void 填充。 【规范 7-2】 :如果参数是指针,且仅作输入用,则应在类型前加 const,防止指针被意外修改。 【规范 7-3】 :当结构变量作为参数时,应传送结构的指针而不是整个结构体。 说明:一个函数被调用的时候,形参会被一个个压入被调函数的堆栈中,在函数调用结束以后再弹出。而指针的长度却是嵌入式软件编程书写规范 - 21 - 固定不变的, 不

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号