### 金山编程规范精选知识点解析 #### 一、概述 《金山编程规范精选》是一份由行业本土领导者金山公司制定的编程规范文档,旨在提升软件产品的质量和可维护性。这份文档详细介绍了编码过程中应遵循的一系列规则和最佳实践,特别强调了代码的可读性和一致性。下面将对文档中的关键知识点进行深入解读。 #### 二、核心规范详解 ##### 1. 缩进与空白行使用规范 - **缩进风格**:程序块应当采用缩进风格编写,每个级别的缩进使用4个空格。对于由开发工具自动生成的代码,允许存在一定的不一致性。 - **空白行的使用**:相对独立的程序块之间以及变量声明之后应该添加空白行,以增强代码的可读性。 **示例代码**: ```c if(!valid_ni(ni)){ // program code } repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni; ``` ##### 2. 长语句分割规范 - **长语句分割**:当语句长度超过80个字符时,应在低优先级的操作符处进行分割,并确保新行的语句适当缩进,以保持良好的格式化和可读性。 - **操作符位置**:分割后的行,操作符应置于新行的开头。 **示例代码**: ```c perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAME * 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_flag = ((taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid(stat_item)) && (act_task_table[taskno].result_data != 0)); ``` ##### 3. 循环与条件语句规范 - **循环和条件语句中的长表达式**:在循环和条件语句中,如果存在较长的表达式,应在低优先级操作符处进行分割,并将操作符置于新行的开头。 - **单行语句限制**:不允许在一个语句行内书写多个语句。 **示例代码**: ```c if((taskno < max_act_task_number) && (n7stat_stat_item_valid(stat_item))) { // program code } for(i = 0, j = 0; (i < BufferKeyword[word_index].word_length) && (j < NewKeyword.word_length); i++, j++) { // program code } ``` ##### 4. 控制结构格式规范 - **控制结构的使用**:`if`, `for`, `do`, `while`, `case`, `switch`, `default`等控制结构应当独占一行,并且其执行语句部分无论长度如何都必须包含在花括号 `{}` 中。 **示例代码**: ```c if(pUserCR == NULL) { return; } ``` ##### 5. 对齐与TAB键使用规范 - **对齐方式**:为了保持代码的一致性和可读性,仅使用空格键进行对齐,避免使用 `TAB` 键。 - **编辑器选择**:建议不要使用某些可能自动替换空格为 `TAB` 的编辑器,比如 BC,因为这会导致不同的编辑器显示代码时布局不一致。 #### 三、总结 金山编程规范精选文档提供了一系列明确、实用的编码指南,这些规范不仅有助于提高代码质量,还能增强团队协作效率。通过遵循这些最佳实践,开发者可以写出更加清晰、易于维护的代码,从而为最终用户提供更高质量的产品和服务。
- sdhzcy2013-08-30不错的东西 适合看
- 粉丝: 1
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助