根据给定的文件信息,以下是对“华为程序规范教材”中提及的重要知识点的详细解析: ### 一、排版 #### 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; ``` #### 1.3 行长度限制 - **规范要点**:当单行代码长度超过80个字符时,需将其拆分为多行,并确保操作符位于新行之首。 - **示例**: ```c 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_flag = ((taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid(stat_item)) && (act_task_table[taskno].result_data != 0)); ``` #### 1.4 循环与判断语句拆分 - **规范要点**:在循环和判断语句中,如果表达式过长,同样需要按照较低优先级的操作符进行拆分。 - **示例**: ```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 的宽度设置不同,可能导致代码布局混乱。 #### 1.9 函数及语句缩进 - **规范要点**:函数或过程的开始、结构定义以及循环、判断等语句中的代码均需要适当缩进。 以上是关于“华为程序规范教材”中排版部分的知识点总结,这些规范有助于提高代码的可读性和一致性,从而便于后续的维护和扩展。接下来,我们还可以进一步探讨其他章节如注释、标识符命名等内容。
- 粉丝: 87
- 资源: 33
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【Unity科幻机器人资源包】SCI FI ROBOTS PACK VOL 1
- 算法训练-使用JAX训练CLIP算法-支持fine-tuning-优质项目实战.zip
- C语言在游戏开发中的应用及其代码实践
- 算法剪枝-基于Pytorch的YOLOX目标检测算法剪枝pruning-算法轻量化-附项目源码-优质项目实战.zip
- 算法加速-基于GPU加速word2vec实现-附项目源码-优质项目实战.zip
- 算法部署-使用NCNN在Android+iOS平台上部署YOLOv5目标检测算法-优质算法部署项目实战.zip
- 算法部署-TensorRT算子开发之Swish-plugin.zip
- 算法部署-darknet-to-ncnn模型转换工具-支持主流网络如resnet+yolo等.zip
- 如何处理键盘侠·伍德提到的DF(Distance Field)的网格体材质混合问题
- 安卓版H5超链接link-v2.0.0