TRZN
TRZN 嵌入式软件编程规范
项目: Embedded software development 文件号: SW-00-00-0001 版本号: 0.1 日期: 2016-10-28 TRZN 领域: SW Engineering 文件名称: 嵌入式软件编程规范 所属部门: 电控质量管理部 文档修改历史: 版本号 日期 0.1
2016-10-28 修改者及常用邮箱 杨科 ykee126@126.com 修改日志 根据查阅的相关资料整理,此版本为第一次提交。 仅限项目组内部传阅 Page 2 of 47
项目: Embedded software development 文件号: SW-00-00-0001 版本号: 0.1 日期: 2016-10-28 TRZN 1 1.1 1.2 2 3 4 5 6 7 8 9 10 10.1 10.2 10.3 10.4 10.5 11 11.1
领域: SW Engineering 文件名称: 嵌入式软件编程规范 所属部门: 电控质量管理部 文档概述 ...................................................................................................................................................................... 4 关于本文档 .............................................................................................................................................................. 4 参考文献 .................................................................................................................................................................. 4 排版 .............................................................................................................................................................................. 5 注释 ............................................................................................................................................................................ 10 标识符命名 ................................................................................................................................................................ 19 可读性 ........................................................................................................................................................................ 25 变量、结构 ................................................................................................................................................................ 26 宏 ................................................................................................................................................................................ 31 函数、过程 ................................................................................................................................................................ 33 可测性 ........................................................................................................................................................................ 41 代码版本管理 ............................................................................................................................................................ 44 代码质量定义 ........................................................................................................................................................ 44 GIT分支定义 ......................................................................................................................................................... 44 GIT代码引入规定 ................................................................................................................................................. 44 GIT代码COMMIT顺序 .......................................................................................................................................... 45 COMMIT文件过程中的其他注意事项 .................................................................................................................. 45 附录A – 推荐编辑器的默认配置修改 .................................................................................................................... 46 KEIL UVISION5默认配置修改 ............................................................................................................................... 46
仅限项目组内部传阅 Page 3 of 47
项目: Embedded software development 文件号: SW-00-00-0001 版本号: 0.1 日期: 2016-10-28 TRZN
领域: SW Engineering 文件名称: 嵌入式软件编程规范 所属部门: 电控质量管理部 1 文档概述
1.1 关于本文档
本文档规范了芜湖天人智能有限公司嵌入式软件部软件代码的书写规范和原则。
本文档仅供公司内部员工使用。
公司机密,严禁外传。
本文档中各规则的格式如下: 【规则 编号】 [规则内容] [[标记]]
其中[标记]的含义如下:
(必须) : 表示该条规则是必须遵守的。 (建议) : 表示该条规则是建议遵守的。 (可选)或没有标记 : 表示该条规则是可选择遵守的。
本文档的示例中,如有使用“//”,并非代码注释,而是文档的注释(有可能是文档中对代码注释的解释)。
1.2 参考文献
[1]高质量C++编程 [2]Effective C++
[3]More Effective C++ [4]C++ Primer [5]Thinking in C++
仅限项目组内部传阅 Page 4 of 47
项目: Embedded software development 文件号: SW-00-00-0001 版本号: 0.1 日期: 2016-10-28 TRZN
领域: SW Engineering 文件名称: 嵌入式软件编程规范 所属部门: 电控质量管理部 2 排版
? 【规则 2-1】程序块要采用缩进风格编写,缩进的空格数为4个,对齐使用空格键,不得使用TAB键。
[必须]
嵌入式软件开发的代码编辑器,推荐使用Keil uVision5,编辑器参数设置见附录A。
? 【规则 2-2】相对独立的程序块之间、变量说明之后必须加空行。[必须]
示例:
不正确的书写方式: if (!rpr_valid_ni(ni)) { ... // program code } gRprRepssnInd = gRprSsnData[idx].repssn_index; gRprRepssnNi = gRprSsnData[idx].ni; 正确的书写方式: if (!rpr_valid_ni(ni)) { ... // program code } //空行 gRprRepssnInd = gRprSsnData[idx].repssn_index; gRprRepssnNi = gRprSsnData[idx].ni;
? 【规则 2-3】较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操
作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。[必须]
示例:
gRprPermCountMsg.head.len = RPR_NO7_TO_STAT_PERM_COUNT_LEN + RPR_STAT_SIZE_PER_FRAM * sizeof( UINT32 ); gSysAcbTaskTable[frame_id * RPR_STAT_TASK_CHECK_NUMBER + index].nOccupied = rprStatPoi[index].nOccupied; gSysAcbTaskTable[taskno].nDurationTrueOrFalse = SYS_getSccpStatisticState( statItem ); gRprReportOrNotFlag = ((SYS_MAX_ACT_TASK_NUMBER > taskno) && (SYS_n7statStatItemValid (statItem)) && (0 != gSYSActTaskTable[taskno].resultData));
? 【规则 2-4】循环、判断等语句中若有较长的表达式或语句,则要进行适当的分行,长表达式要在低
优先级操作符处划分新行,操作符放在行尾。[必须]
示例:
仅限项目组内部传阅 Page 5 of 47