语句华为代码规范文档

死亡代码  时间: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

}

欧路云(22元) 新增美国Cera线路VPS主机且可全场8折

欧路云(oulucloud) 商家在前面的文章中也有陆续介绍过几次,这不今天有看到商家新增加美国Cera线路的VPS主机,而且有提供全场八折优惠。按照最低套餐最低配置的折扣,月付VPS主机低至22元,还是比较便宜的。不过我们需要注意的是,欧路云是一家2021年新成立的国人主机商,据说是由深圳和香港的几名大佬创建。如果我们有介意新商家的话,选择的时候谨慎且月付即可,注意数据备份。商家目前主营高防VP...

Dynadot多种后缀优惠域名优惠码 ,.COM域名注册$6.99

Dynadot 是一家非常靠谱的域名注册商家,老唐也从来不会掩饰对其的喜爱,目前我个人大部分域名都在 Dynadot,还有一小部分在 NameCheap 和腾讯云。本文分享一下 Dynadot 最新域名优惠码,包括 .COM,.NET 等主流后缀的优惠码,以及一些新顶级后缀的优惠。对于域名优惠,NameCheap 的新后缀促销比较多,而 Dynadot 则是对于主流后缀的促销比较多,所以可以各取所...

云基Yunbase无视CC攻击(最高500G DDoS防御),美国洛杉矶CN2-GIA高防独立服务器,

云基yunbase怎么样?云基成立于2020年,目前主要提供高防海内外独立服务器,欢迎各类追求稳定和高防优质线路的用户。业务可选:洛杉矶CN2-GIA+高防(默认500G高防)、洛杉矶CN2-GIA(默认带50Gbps防御)、香港CN2-GIA高防(双向CN2GIA专线,突发带宽支持,15G-20G DDoS防御,无视CC)。目前,美国洛杉矶CN2-GIA高防独立服务器,8核16G,最高500G ...

死亡代码为你推荐
字符串div支持ipadiexplore.exe应用程序错误iexplore.exe---应用程序错误.是什么意思?谷歌sbSb是什么意思?迅雷快鸟迅雷快鸟是做什么用的,,,google统计google分析里的数据包括搜索引擎爬虫的数据吗?Google中文专题交流fastreport2.5护套线BV2.5中的2.5是指什么尺寸,单位是什么,BV又是什么意思?routeadd如何用route add添加本地路由表,使一个网段的机器能访问另一个网段局域网的机器。望高手指点。chrome172017款领航员四驱长轴3.5T车身长宽高马力油耗多大17款领航员报价altools.u32为什么我做的Authorware在打包后不是全屏的?
vps教程 漂亮qq空间 kvmla permitrootlogin 主机合租 hnyd 免费美国空间 服务器合租 香港新世界中心 常州联通宽带 帽子云排名 深圳域名 国外免费云空间 阵亡将士纪念日 国内空间 杭州电信宽带 广州主机托管 免备案jsp空间 windows2008 reboot 更多