1、华为代码规范文档代码规文档1概述1.1编写目的为规软件开发人员的代码编写提供参考依据和统一标准。1.2文档约定说明本文档中所用到的专用术语定义或解释,缩略词定义。1.3预期的读者和阅读建议本文档适用于所有软件开发人员。1.4参考文献 列出有关的参考文件,如: a属于本工程的其他已发表文件; b本文件中各处引用的文档资料。 列出这些文件的标题、作者,说明能够得到这些文件资料的来源。2排版要求2.1程序块缩进程序块要采用缩进风格编写,缩进的空格数为4个。说明:对于由开发工具自动生成的代码可以有不一致。2.2程序块之间空行相对独立的程序块之间、变量说明之后必须加空行。例如:如下例子不符合规。if (
2、!valid_ni(ni) . / program coderepssn_ind = ssn_dataindex.repssn_index;repssn_ni = ssn_dataindex.ni;应如下书写if (!valid_ni(ni) . / program coderepssn_ind = ssn_dataindex.repssn_index;repssn_ni = ssn_dataindex.ni;2.3长语句和长表达式较长的语句80字符要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进展适当的缩进,使排版整齐,语句可读。例如:perm_co
3、unt_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof( _UL );act_task_tableframe_id * STAT_TASK_CHECK_NUMBER + index.occupied = stat_poiindex.occupied;act_task_tabletaskno.duration_true_or_false = SYS_get_sccp_statistic_state( stat_item );report_or_not_flag = (taskno MAX_ACT_TA
4、SK_NUMBER) & (n7stat_stat_item_valid (stat_item)& (act_task_tabletaskno.result_data != 0);2.4循环、判断等长表达式或语句循环、判断等语句中假设有较长的表达式或语句,那么要进展适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。例如:if (taskno max_act_task_number) & (n7stat_stat_item_valid (stat_item) . / program codefor (i = 0, j = 0; (i BufferKeywordword_ind
5、ex.word_length) & (j NewKeyword.word_length); i+, j+) . / program codefor (i = 0, j = 0; (i first_word_length) & (j ,后不应加空格。说明:采用这种松散方式编写代码的目的是使代码更加清晰。由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰那么括号侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在C/C+语言中括号已经是最清晰的标志了。在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操
6、作符留空格时不要连续留两个以上空格。例如:(1) 逗号、分号只在后面加空格。int a, b, c; (2)比拟操作符, 赋值操作符=、 +=,算术操作符+、%,逻辑操作符&、&,位域操作符= MAX_TIME_VALUE) a = b + c;a *= 2;a = b 2;(3)!、+、-、&地址运算符等单目操作符前后不加空格。*p = a; / 容操作*与容之间flag = !isEmpty; / 非操作!与容之间p = &mem; / 地址操作& 与容之间i+; / +,-与容之间(4)-、.前后不加空格。p-id = pid; / -指针前后不加空格(5) if、for、while、s
7、witch等与后面的括号间应加空格,使if等关键字更为突出、明显。if (a = b & c d)2.12其他2.12.1一行程序以小于80字符为宜,不要写得过长。3注释3.1有效注释量一般情况下,源程序有效注释量必须在20以上。说明:注释的原那么是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。3.2公司标识在头文件中参加公司标识。例如如下:*/* */* Copyright (c) 1996-1998*pany */* 所有 1996-1998*/* */* PROPRIETARY RIGHTS of* panyare involved i
8、n the */* subjectmatter of this material. All manufacturing, reproduction, use,*/* andsales rights pertaining to this subject matter are governed by the*/* license agreement. The recipient of this software implicitly accepts */ /* the terms of the license.*/* 本软件文档资料是*x公司的资产,任何人士阅读和使用本资料必须获得 */* 相应的
9、书面授权,承当责任和承受相应的法律约束. */* */*/3.3说明性文件说明性文件如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等头部应进展注释,注释必须列出:说明、版本号、生成日期、作者、容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。例如:下面这段头文件的头注释比拟标准,当然,并不局限于此格式,但上述信息建议要包含在。/* Copyright (C), 1996-1998, *x. Co., Ltd. File name: / 文件名 Author: Version: Date: / 作者、版本及完成日期 Description: / 用于详细说明此程序文件完成的主要功能,与其他模块 / 或函数的接口,输出值、取值围、含义及参数间的控 / 制、顺序、独立或依赖等关系 Others: / 其它容的说明 Function List: / 主要函数列表,每条记录应包括函数名及功能简要说明 1. . History: / 修改历史记录列表,每条修改记录应包括修改日期、修改 / 者及修改容简述 1. Date: Author: Modification: 2. .*/3.4
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1