### 华为编程规范详解 #### 一、排版规范 **1.1 程序块缩进** - **规范要点**:程序块应当采用缩进风格编写,每个缩进使用4个空格。 - **注意事项**:此规则适用于手动编写的代码,对于由开发工具自动生成的代码,可能会存在不一致性。 **1.2 空行间隔** - **规范要点**:在相对独立的程序块之间以及变量声明后,必须插入空行。 - **示例**: ```c if (!valid_ni(ni)) { // program code } repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni; ``` - **不符合规范示例**: ```c if(!valid_ni(ni)) { //programcode }repssn_ind=ssn_data[index].repssn_index; repssn_ni=ssn_data[index].ni; ``` **1.3 长语句分段** - **规范要点**:当语句长度超过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)); ``` **1.4 循环与条件语句分段** - **规范要点**:循环和条件语句中的长表达式也应当按照1.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 } ``` **1.5 函数调用参数分段** - **规范要点**:如果函数调用的参数列表过长,应当对其进行适当的分段处理。 - **示例**: ```c n7stat_str_compare((BYTE*) &stat_object, (BYTE*) &(act_task_table[taskno].stat_object), sizeof(_STAT_OBJECT)); n7stat_flash_act_duration(stat_item, frame_id * STAT_TASK_CHECK_NUMBER + index, stat_object); ``` **1.6 限制单行语句数量** - **规范要点**:不允许在一个语句行中写入多条语句。 - **示例**: ```c rect.length = 0; rect.width = 0; ``` **1.7 控制结构格式** - **规范要点**:if、for、do、while、case、switch、default等控制结构应自占一行,并且即使只有一个语句也要加上大括号{}。 - **示例**: ```c if (pUserCR == NULL) { return; } ``` **1.8 对齐方式** - **规范要点**:仅使用空格键进行对齐,禁止使用TAB键。 - **注意事项**:避免使用不同的编辑器时由于TAB键的宽度设置不同而导致代码布局混乱。建议不要使用BC编辑器合并版本,因为它会自动将8个空格转换为一个TAB键,从而可能导致代码缩进混乱。 **1.9 循环和控制结构的开始** - **规范要点**:循环和控制结构的开始应自占一行,并遵循上述提到的大括号使用规则。 以上就是华为内部编程规范中关于排版的部分规范,这些规定有助于提高代码的可读性和一致性,对于团队协作和代码维护有着重要意义。接下来的章节将涉及更多的编程规范,包括注释、标识符命名、可读性等方面,旨在帮助开发者更好地理解并应用这些规范。
- 粉丝: 1
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 制动能量回收Simulink模型 四驱制动能量回收simulink模型 四驱电动汽车simulink再生制动模型 MATLAB再
- 基于SpringBoot+Vue校园二手交易平台源码+数据库(毕业设计).zip
- 大众汽车 VW80000(2022)标准 解读.docx
- C++并行计算与异步网络框架
- H桥级联三相逆变器 加设LCL滤波器,三相负载构成主电路 MATLAB21b版本 采用SPWM调制,可以得到逆变器输出五电平相
- 1728559015781.jpg
- 基于SpringBoot的前后端分离的校园二手交易平台源码+数据库脚本(java毕业设计)
- 算法Python所有用Python实现的算法-用于教育 实现仅用于学习目的 它们的效率可能低于Python标准库中的实现
- tensorflow入门案例手写数字识别人工智能界的helloworld项目落地1
- 基于MATLAB的MT-2型车钩缓冲器的列车纵向动力学仿真,牵引制动特性,车辆冲击试验,线路模拟 根据'MT-2型缓冲器的结构建