嵌入式软件编程规范

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TRZN TRZN 嵌入式软件编程规范

1文档概述 (4)

1.1关于本文档 (4)

1.2参考文献 (4)

2排版 (5)

3注释 (10)

4标识符命名 (19)

5可读性 (25)

6变量、结构 (26)

7宏 (31)

8函数、过程 (33)

9可测性 (41)

10代码版本管理 (44)

10.1代码质量定义 (44)

10.2G IT分支定义 (44)

10.3G IT代码引入规定 (44)

10.4G IT代码C OMMIT顺序 (45)

10.5C OMMIT文件过程中的其他注意事项 (45)

11附录A –推荐编辑器的默认配置修改 (46)

11.1K EIL U V ISION5默认配置修改 (46)

1 文档概述

1.1 关于本文档

本文档规范了芜湖天人智能有限公司嵌入式软件部软件代码的书写规范和原则。

本文档仅供公司内部员工使用。

公司机密,严禁外传。

本文档中各规则的格式如下:

【规则编号】 [规则内容] [[标记]]

其中[标记]的含义如下:

(必须):表示该条规则是必须遵守的。

(建议):表示该条规则是建议遵守的。

(可选)或没有标记:表示该条规则是可选择遵守的。

本文档的示例中,如有使用“//”,并非代码注释,而是文档的注释(有可能是文档中对代码注释的解释)。

1.2 参考文献

[1]高质量C++编程

[2]Effective C++

[3]More Effective C++

[4]C++ Primer

[5]Thinking in C++

2 排版

● 【规则 2-1】程序块要采用缩进风格编写,缩进的空格数为4个,对齐使用空格键,不得使用TAB 键。

[必须]

嵌入式软件开发的代码编辑器,推荐使用Keil uVision5,编辑器参数设置见附录A 。

【规则 2-2】相对独立的程序块之间、变量说明之后必须加空行。[必须]

示例:

● 【规则 2-3】较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操

作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。[必须]

示例:

● 【规则 2-4】循环、判断等语句中若有较长的表达式或语句,则要进行适当的分行,长表达式要在低

优先级操作符处划分新行,操作符放在行尾。[必须]

示例:

●【规则 2-5】若函数的参数较长,则要进行适当的分行。[必须]

示例:

●【规则 2-6】不允许把多个短语句写在一行中,即一行只写一条语句。[必须]

示例:

● 【规则 2-7】if 、for 、do 、while

、case 、switch 、default 等语句自占一行,且if 、for 、

do 、while 等语句的执行语句部分无论多少都要加括号{}。[必须]

示例:

● 【规则 2-8】在比较表达式中,如果有常量,尽量把常量放在前面。[建议]

这样,万一不小心把“==”误敲成“=”,就会通不过翻译,不致引起难查的问题。

● 【规则 2-9】程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一

列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if 、for 、do 、while 、switch 、case 语句中的程序都要采用如上的缩进方式。[建议]

示例:本规则的特例见2-7的说明部分。

【规则 2-10】在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。[必须]说明:采用这种松散方式编写代码的目的是使代码更加清晰。

由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在C/C++语言中括号已经是最清晰的标志了。

在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时不要连续留两个以上空格。

示例:

【规则 2-10-1】逗号、分号只在后面加空格。

int a, b, c;

【规则 2-10-2】比较操作符, 赋值操作符"="、 "+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的前后加空格。

if (currentTime >= MAX_TIME_VALUE)

a =

b + c;

a *= 2;

a =

b ^ 2;

【规则 2-10-3】"!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符前后不加空格。

*p = 'a'; // 内容操作"*"与内容之间

flag = !isEmpty; // 非操作"!"与内容之间

p = &mem; // 地址操作"&" 与内容之间

i++; // "++","--"与内容之间

【规则 2-10-4】"->"、"."前后不加空格。

p->id = pid; // "->"指针前后不加空格

【规则 2-10-5】if、for、while、switch等与后面的括号间应加空格,使if等关键字更为突出、明显。

if ((a >= b) && (c > d))

相关文档
最新文档