huawei代码书写规范

上传人:n**** 文档编号:44197054 上传时间:2018-06-08 格式:PDF 页数:69 大小:286.71KB
返回 下载 相关 举报
huawei代码书写规范_第1页
第1页 / 共69页
huawei代码书写规范_第2页
第2页 / 共69页
huawei代码书写规范_第3页
第3页 / 共69页
huawei代码书写规范_第4页
第4页 / 共69页
huawei代码书写规范_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《huawei代码书写规范》由会员分享,可在线阅读,更多相关《huawei代码书写规范(69页珍藏版)》请在金锄头文库上搜索。

1、目录1 排版 6 2 注释 11 3 标识符命名 18 4 可读性 20 5 变量、结构 22 6 函数、过程 28 7 可测性 36 8 程序效率 40 9 质量保证 44 10 代码编辑、编译、审查 50 11 代码测试、维护 52 12 宏 531 排版 11:程序块要采用缩进风格编写,缩进的空格数为4 个。说明:对于由开发工具自动生成的代码可以有不一致。12:相对独立的程序块之间、变量说明之后必须加空行。示例:如下例子不符合规范。if (!valid_ni(ni). / program coderepssn_ind = ssn_dataindex.repssn_indexrepssn_

2、ni= ssn_dataindex.ni应如下书写if (!valid_ni(ni). / program coderepssn_ind = ssn_dataindex.repssn_indexrepssn_ni= ssn_dataindex.ni13:较长的语句(80 字符)要分成多行书写,长表达式要在低优先级操作符处划分新行, 操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。示例:perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN+ STAT_SIZE_PER_FRAM * sizeof( _UL )act_ta

3、sk_tableframe_id * STAT_TASK_CHECK_NUMBER + index.occupied= stat_poiindex.occupiedact_task_tabletaskno.duration_true_or_false= SYS_get_sccp_statistic_state( stat_item )report_or_not_flag = (taskno ) ,后不应 加空格。说明:采用这种松散方式编写代码的目的是使代码更加清晰。由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格, 如果语句已足够清晰则括号内侧(即左括号后面和右括

4、号前面)不需要加空格,多重括号间不 必加空格,因为在 C/C+语言中括号已经是最清晰的标志了。在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给 操 作符留空格时不要连续留两个以上空格。示例:(1) 逗号、分号只在后面加空格。int a, b, c(2)比较操作符, 赋值操作符“=“、 “+=“,算术操作符“+“、“%“,逻辑操作符“&“、“&“,位 域操作符“= MAX_TIME_VALUE)a = b + ca *= 2a = b 2(3)“!“、“、“+“、“、“&“(地址运算符)等单目操作符前后不加空格。*p = a/ 内容操作“*“与内容之间flag =

5、!isEmpty / 非操作“!“与内容之间p = &mem/ 地址操作“&“ 与内容之间i+/ “+“,“与内容之间(4)“、“.“前后不加空格。pid = pid/ “指针前后不加空格(5) if、for、while、switch 等与后面的括号间应加空格,使if 等关键字更为突出、明显。if (a = b & c d)11:一行程序以小于80 字符为宜,不要写得过长。2 注释 21:一般情况下,源程序有效注释量必须在20以上。说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能 太少,注释语言必须准确、易懂、简洁。22:说明性文件(如头文件.h 文件、.inc

6、 文件、.def 文件、编译说明文件.cfg 等)头部应进 行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件 的 关系、修改日志等,头文件的注释中还应有函数功能简要说明。示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要 包 含在内。/*Copyright (C), 19881999, Huawei Tech. Co., Ltd.File name:/ 文件名Author:Version:Date: / 作者、版本及完成日期Description:/ 用于详细说明此程序文件完成的主要功能,与其他模块/ 或函数的接口,输出值、取值范围、含

7、义及参数间的控/ 制、顺序、独立或依赖等关系Others:/ 其它内容的说明Function List:/ 主要函数列表,每条记录应包括函数名及功能简要说明1. .History:/ 修改历史记录列表,每条修改记录应包括修改日期、修改/ 者及修改内容简述1. Date:Author:Modification:2. .*/23:源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、 主要函数及其功能、修改日志等。示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要 包 含在内。/*Copyright (C), 19881999, Huawei T

8、ech. Co., Ltd.FileName: test.cppAuthor:Version :Date:Description:/ 模块描述Version:/ 版本信息Function List:/ 主要函数及其功能1. History:/ 历史修改记录David96/10/121.0build this moudle*/说明:Description 一项描述本文件的内容、功能、内部各部分之间的关系及本文件与其它文 件关系等。History 是修改历史记录列表,每条修改记录应包括修改日期、修改者及修改内 容简述。24:函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调

9、用 关系(函数、表)等。示例:下面这段函数的注释比较标准,当然,并不局限于此格式,但上述信息建议要包含 在 内。/*Function:/ 函数名称Description:/ 函数功能、性能等的描述Calls:/ 被本函数调用的函数清单Called By:/ 调用本函数的函数清单TableAccessed: / 被访问的表(此项仅对于牵扯到数据库操作的程序)Table Updated:/ 被修改的表(此项仅对于牵扯到数据库操作的程序)Input:/ 输入参数说明,包括每个参数的作/ 用、取值说明及参数间关系。Output:/ 对输出参数的说明。Return:/ 函数返回值的说明Others:/

10、其它说明*/25:边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再 有用的注释要删除。26:注释的内容要清楚、明了,含义准确,防止注释二义性。说明:错误的注释不但无益反而有害。规则 27:避免在注释中使用缩写,特别是非常用缩写。 说明:在使用缩写时或之前,应对缩写进行必要的说明。28: 注释应与其描述的代码相近, 对代码的注释应放在其上方或右方 (对单条语句的注释) 相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。示例:如下例子不符合规范。例 1:/* get replicate sub system index and net indicator *

11、/repssn_ind = ssn_dataindex.repssn_indexrepssn_ni = ssn_dataindex.ni例 2:repssn_ind = ssn_dataindex.repssn_indexrepssn_ni = ssn_dataindex.ni/* get replicate sub system index and net indicator */应如下书写/* get replicate sub system index and net indicator */repssn_ind = ssn_dataindex.repssn_indexrepssn_ni

12、 = ssn_dataindex.ni29:对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须 加以注释,说明其物理含义。变量、常量、宏的注释应放在其上方相邻位置或右方。示例:/* active statistic task number */#define MAX_ACT_TASK_NUMBER 1000#define MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */210:数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须 加以注释。对数据结构的注释应放在其上方相邻位置,

13、不可放在下面;对结构中的每个域的 注释放在此域的右方。示例:可按如下形式说明枚举/数据/联合结构。/* sccp interface with sccp user primitive message name */enumSCCP_USER_PRIMITIVEN_UNITDATA_IND, /* sccp notify sccp user unit data come */N_NOTICE_IND,/* sccp notify user the No.7 network can not */* transmission this message */N_UNITDATA_REQ, /* scc

14、p users unit data transmission request*/211:全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以 及存取时注意事项等的说明。示例:/* The ErrorCode when SCCP translate */* Global Title failure, as follows */ 变量作用、含义/* 0 SUCCESS1 GT Table error */* 2 GT errorOthers no use*/ 变量取值范围/* onlyfunctionSCCPTranslate() in */* this modual can modify it,andother */* module can visit it through call */* thefunction GetGTTransErrorCode() */ 使用方法BYTE g_GTTranErrorCode212:注释与所描述内容进行同样的缩排。说明:可使程序排版整齐,并方便注释的阅读与理解。示例:如下例子,排版不整齐,阅读稍感不方便。void example_fun( void )/* code one comments */CodeBlock One/* code two comments */CodeBlock Two应改为如下布局。void

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

当前位置:首页 > 医学/心理学 > 护理学

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