1、华为代码规范文档华为代码规范文档代码规范文档1 概述1.1 编写目的为规范软件开发人员的代码编写提供参考依据和统一标准。1.2 文档约定说明本文档中所用到的专用术语定义或解释,缩略词定义。1.3 预期的读者和阅读建议本文档适用于所有软件开发人员。1.4 参考文献 列出有关的参考文件,如: a属于本项目的其他已发表文件; b本文件中各处引用的文档资料。 列出这些文件的标题、作者,说明能够得到这些文件资料的来源。2 排版要求2.1 程序块缩进程序块要采用缩进风格编写,缩进的空格数为4个。说明:对于由开发工具自动生成的代码可以有不一致。2.2 程序块之间空行相对独立的程序块之间、变量说明之后必须加空
2、行。示例:如下例子不符合规范。if (!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字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进
3、,使排版整齐,语句可读。示例:perm_count_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_fla
4、g = (taskno MAX_ACT_TASK_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
5、BufferKeywordword_index.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;
7、/ -指针前后不加空格(5) if、for、while、switch等与后面的括号间应加空格,使if等关键字更为突出、明显。if (a = b & c d)2.12 其他2.12.1 一行程序以小于80字符为宜,不要写得过长。3 注释3.1 有效注释量一般情况下,源程序有效注释量必须在20以上。说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。3.2 公司标识在头文件中加入公司标识。示例如下:*/* */* Copyright (c) 1996-1998 XXXXXX Company */*xxxxxxxx 版权所有 1996-
8、1998*/* */* PROPRIETARY RIGHTS ofXXXXXX Companyare involved in 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. */* 本软件文档资料是xxx公司的资产,任何人士阅读和使用本资料必须获得 */* 相应的书面授权,承担保密责任和接受相应的法律约束. */* */*/3.3 说明性文件说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。/* Copyright (C)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1