语句华为代码规范文档

死亡代码  时间:2021-04-26  阅读:()

目录

1 概述 51 1 编写目的 51 2 文档约定 51 3 预期的读者和阅读建议 51 4 参考文献 52 排版要求 52 1 程序块缩进 52 2 程序块之间空行 52 3 长语句和长表达式 62 4 循环、判断等长表达式或语句 72 5 长参数 72 6 短语句 82 7 条件、循环语句 82 8 语句对齐 82 9 函数、过程和结构等语句块 92 10 程序块分界符 92 1 1 操作符前后空格 102 12 其他 1 13 注释 1 13 1 有效注释量 1 13 2 公司标识 1 13 3 说明性文件 123 4 源文件头 133 5 函数头部说明 133 6 注释与代码一致 143 7 注释内容 143 8 注释缩写 143 9 注释位置 143 10 变量、常量注释 153 1 1 数据结构的注释 153 12 全局变量 163 13 注释缩排 163 14 注释与代码之间空行 173 15 变量定义、分支语句 173 16 其他 194 标识符命名 204 1 命名清晰 204 2 特殊命名需注释 214 3 命名风格保持一致 214 4 变量命名 214 5 命名规范与系统风格一致 224 6 其他 225 可读性 235 1 运算符优先级 23

5 2 避免直接使用数字作为标识符 245 3 其他 246 变量、结构 256 1 公共变量 256 2 公共变量说明 266 3 公共变量访问说明 266 4 公共变量赋值 266 5 防止局部变量与公共变量同名。 266 6 严禁使用未经初始化的变量作为右值。 266 7 其他 277 函数、过程 347 1 对所调用函数的错误返回码要仔细、全面地处理。 347 2 明确函数功能精确而不是近似地实现函数设计。 347 3 局部变量 347 4 全局变量 347 5 接口函数参数 357 6 其他 358 可测性 458 1 调测开关 458 2 打印信息 458 3 单元测试 458 4 集成测试 458 5 断言使用 458 6 设置与取消有关测试手段时不能影响软件功能功能 488 7 版本维护 498 8 其他 499 程序效率 519 1 编程时要经常注意代码的效率。 519 2 提高代码效率 519 3 全局效率高于局部效率 519 4 提高代码空间效率 519 5 循环体内工作量最小化 529 6 其他 5310 质量保证 5610 1 在软件设计过程中构筑软件质量。 5610 2 代码质量保证优先原则 5610 3 只引用属于自己的存贮空间。 5710 4 防止引用已经释放的内存空间。 5710 5 内存及时释放 5710 6 文件句柄及时关闭 5710 7 防止内存操作越界 5810 8 认真处理程序所能遇到的各种出错情况 5910 9 初始化变量 5910 10 数据一致性检查 5910 1 1 严禁随意更改其它模块或系统的有关设置和配置 6010 12 不能随意改变与其它模块的接口 60

10 13 系统接口 6010 14 编程时要防止差1错误 6210 15 操作符检查 6210 16 分支语句写完整 6210 17 使用return语句 6210 18 不要滥用goto语句 6210 19 其他 631 1 代码编辑、编译、审查 661 1 1 打开编译器的所有告警开关对程序进行编译 661 1 2 在产品软件项目组中要统一编译开关选项 661 1 3 通过代码走读及审查方式对代码进行检查。 661 1 4 测试部测试产品之前应对代码进行抽查及评审 661 1 5 其他 6612 代码测试、维护 6812 1 单元测试要求至少达到语句覆盖 6812 2 单元测试开始要跟踪每一条语句并观察数据流及变量的变化 6812 3 清理、整理或优化后的代码要经过审查及测试。 6812 4 代码版本升级要经过严格测试 6812 5 使用工具软件对代码版本进行维护 6812 6 正式版本上软件的任何修改都应有详细的文档记录 6812 7 其他 6813 宏 6913 1 用宏定义表达式时要使用完备的括号 6913 2 将宏所定义的多条表达式放在大括号中 6913 3 使用宏时不允许参数发生变化 70

1概述

1. 1编写目的

为规范软件开发人员的代码编写提供参考依据和统一标准。

1. 2文档约定

说明本文档中所用到的专用术语定义或解释缩略词定义。

1. 3预期的读者和阅读建议

本文档适用于所有软件开发人员。

1.4参考文献

列出有关的参考文件如a属于本项目的其他已发表文件b本文件中各处引用的文档资料。

列出这些文件的标题、作者说明能够得到这些文件资料的来源。2排版要求

2. 1 程序块缩进

程序块要采用缩进风格编写缩进的空格数为4个。

说明对于由开发工具自动生成的代码可以有不一致。

2. 2 程序块之间空行

相对独立的程序块之间、变量说明之后必须加空行。

示例如下例子不符合规范。if (!val id_ni (ni ) )

{

// program code

}repssn_ind = ssn_data[ index] repssn_index;repssn_ni = ssn_data[ index] ni ;

应如下书写if (!val id_ni (ni ) )

{

// program code

}repssn_ind = ssn_data[ index] repssn_index;repssn_ni = ssn_data[ index] ni ;

2. 3 长语句和长表达式

较长的语句>80字符要分成多行书写长表达式要在低优先级操作符处划分新行操作符放在新行之首划分出的新行要进行适当的缩进使排版整齐语句可读。

示例perm_count_msg head len = NO7_TO_STAT_PERM_COUNT_LEN

+ STAT_SIZE_PER_FRAM * sizeof( _UL ) ;act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index] occupied

= stat_poi [ index] occupied;act_task_table[taskno] duration_true_or_false

= SYS_get_sccp_statistic_state( stat_item ) ;report_or_not_f lag = ( (taskno < MAX_ACT_TASK_NUMBER)

&& (n7stat_stat_item_val id (stat_item) )

&& (act_task_table[taskno] result_data != 0) ) ;

2.4循环、判断等长表达式或语句

循环、判断等语句中若有较长的表达式或语句则要进行适应的划分长表达式要在低优先级操作符处划分新行操作符放在新行之首。

示例if ( (taskno < max_act_task_number)

&& (n7stat_stat_item_val id (stat_item) ) )

{

// program code

}for (i = 0, j = 0; (i < BufferKeyword[word_index] word_length)

&& (j < NewKeyword word_length) ; i++, j++)

{

// program code

}for (i = 0, j = 0;

(i < f i rst_word_length) && (j < second_word_length) ;i++, j++)

{

// program code

}

2. 5长参数

若函数或过程中的参数较长则要进行适当的划分。

示例n7stat_str_compare( (BYTE *) & stat_object,

(BYTE *) & (act_task_table[taskno] stat_object) ,sizeof (_STAT_OBJECT) ) ;

n7stat_f lash_act_duration( stat_item, frame_id *STAT_TASK_CHECK_NUMBER

+ index, stat_object ) ;

2.6短语句

不允许把多个短语句写在一行中即一行只写一条语句。

示例如下例子不符合规范。rect length = 0; rect width = 0;

应如下书写rect length = 0;rect width = 0;

2. 7条件、循环语句if、 for、 do、 whi le、 case、 switch、 default等语句自占一行且if、 for、 do、 whi le等语句的执行语句部分无论多少都要加括号{} 。

示例如下例子不符合规范。if (pUserCR == NULL) return;

应如下书写if (pUserCR == NULL)

{return;

}

2.8 语句对齐

对齐只使用空格键不使用TAB键。

说明 以免用不同的编辑器阅读程序时 因TAB键所设置的空格数目不同而造成程序布局不整齐不要使用BC作为编辑器合版本 因为BC会自动将8个空格变为一个TAB键 因此使用BC合入的版本大

多会将缩进变乱。

2.9 函数、过程和结构等语句块

函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格 case语句下的情况处理语句也要遵从语句缩进要求。

2. 10程序块分界符

程序块的分界符如C/C++语言的大括号‘ { ’和‘} ’ 应各独占一行并且位于同一列 同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、whi le、 switch、case语句中的程序都要采用如上的缩进方式。

示例如下例子不符合规范。for ( ) {

// program code

}if ( )

{

// program code

}void example_fun( void )

{

// program code

}

应如下书写。for ( )

{

// program code

}

OneTechCloud(31元),美国CN2 GIA高防VPS月

OneTechCloud发布了本月促销信息,全场VPS主机月付9折,季付8折,优惠后香港VPS月付25.2元起,美国CN2 GIA线路高防VPS月付31.5元起。这是一家2019年成立的国人主机商,提供VPS主机和独立服务器租用,产品数据中心包括美国洛杉矶和中国香港,Cera的机器,VPS基于KVM架构,采用SSD硬盘,其中美国洛杉矶回程CN2 GIA,可选高防。下面列出部分套餐配置信息。美国CN...

HostKvm(4.25美)香港和俄罗斯高防机房云服务器

HostKvm 商家我们算是比较熟悉的国内商家,商家主要还是提供以亚洲数据中心,以及直连海外线路的服务商。这次商家有新增香港和俄罗斯两个机房的高防服务器方案。默认提供30GB防御,且目前半价优惠至4.25美元起步,其他方案的VPS主机还是正常的八折优惠。我们看看优惠活动。香港和俄罗斯半价优惠:2021fall,限购100台。通用优惠码:2021 ,八折优惠全部VPS。我们看看具体的套餐。1、香港高...

Asiayun:枣庄电信Asiayun美国Cera葵湾VPSvps月付,美国CERA VPS月付26元/年

亚洲云Asiayun怎么样?亚洲云成立于2021年,隶属于上海玥悠悠云计算有限公司(Yyyisp),是一家新国人IDC商家,且正规持证IDC/ISP/CDN,商家主要提供数据中心基础服务、互联网业务解决方案,及专属服务器租用、云服务器、云虚拟主机、专属服务器托管、带宽租用等产品和服务。Asiayun提供源自大陆、香港、韩国和美国等地骨干级机房优质资源,包括BGP国际多线网络,CN2点对点直连带宽以...

死亡代码为你推荐
搜狗输入法安利定制版问与答测试ios思科route绑定ipad支持ipadtraceroute网络管理工具traceroute是什么程序迅雷下载速度迅雷下载速度与什么有关?ipad无法加入网络为什么我的ipad加入网络没法用android5.1android 5.1是什么意思支付宝白领日记支付宝生活在海外在哪里?支付宝生活在海外怎么进
高防服务器租用qy cdn服务器 59.99美元 紫田 免费ddos防火墙 web服务器架设软件 me空间社区 泉州移动 服务器托管什么意思 美国免费空间 中国网通测速 电信虚拟主机 in域名 中国电信测速网站 lamp的音标 ssl加速 japanese50m咸熟 web是什么意思 服务器是什么意思 ddos防火墙 更多