title: 《华为C语言编程规范 》
data: 2021-11-7

第一章 排版

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

  2. if、for、do、while、case、switch、default等语句各自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。

  3. 对其用空格键,不用Tab键。

  4. 对两个以上的关键字、变量、常量进行对等操作时,加空格的情况。

    ①多重括号间不必加空格;

    ②"->"、"."前后不加空格;

    ③if、for、while、switch等与后面的括号间应加空格,使其更突出。

  5. 一行程序小于80字符为宜,不要过长。

第二章 注释

  1. 源程序有效注释量必须在20%以上。

  2. 说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应 进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的 关系、修改日志等,头文件的注释中还应有函数功能简要说明。

     /************************************************* Copyright (C), 1988-1999, Huawei Tech. Co., Ltd. File name:             // 文件名Author: Version: Date: // 作者、版本及完成日期Description:           // 用于详细说明此程序文件完成的主要功能,与其他模块// 或函数的接口,输出值、取值范围、含义及参数间的控 制、顺序、独立或依赖等关系Others:                // 其它内容的说明Function List:         // 主要函数列表,每条记录应包括函数名及功能简要说明1. .... History:               // 修改历史记录列表,每条修改记录应包括修改日期、修改者及修改内容简述 1. Date: Author: Modification: 2. ...*************************************************/ 
  3. 源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、 主要函数及其功能、修改日志等。

     /************************************************************ Copyright (C), 1988-1999, Huawei Tech. Co., Ltd. FileName: test.cpp Author:        Version :       Date: Description:   // 模块描述 Version:       // 版本信息Function List: // 主要函数及其功能1. ------- History:       // 历史修改记录<author>    <time>      <version >       <desc> David     96/10/12        1.0      build this moudle ***********************************************************/
  4. 函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用 关系(函数、表)等。

     /************************************************* Function:          // 函数名称Description:       // 函数功能、性能等的描述Calls:             // 被本函数调用的函数清单Called By:         // 调用本函数的函数清单Table Accessed:    // 被访问的表(此项仅对于牵扯到数据库操作的程序)Table Updated:     // 被修改的表(此项仅对于牵扯到数据库操作的程序)Input:             // 输入参数说明,包括每个参数的作用、取值说明及参数间关系。Output:            // 对输出参数的说明。Return:            // 函数返回值的说明Others:            // 其它说明*************************************************/
  5. 对代码的注释应放在其上方或右方(对单条语句的注释) 相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。

  6. 对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加 以注释,说明其物理含义。变量、常量、宏的注释应放在其上方相邻位置或右方。

  7. :数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须 加以注释。对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注 释放在此域的右方。

  8. 全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及 存取时注意事项等的说明。

  9. 注释与所描述内容进行同样的缩排。

  10. 对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。

  11. 对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一 个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释。

     case CMD_DOWN: ProcessDown(); break;case CMD_FWD: ProcessFwd(); ProcessCFW_B();     // now jump into case CMD_Acase CMD_A: ProcessA(); break;

12.在程序块的结束行右方加注释标记,以表明某程序块的结束。

说明:当代码段较长,特别是多重嵌套时,这样做可以使代码更清晰,更便于阅读。

 if (...) { ...while (index < MAX_INDEX) {...} /* end of while (index < MAX_INDEX) */    // 指明该条 while 语句结束} /* end of if (...)*/                          // 指明是哪条 if 语句结束

《华为C语言编程规范 》笔记相关推荐

  1. 《信贷的逻辑与常识》笔记

    序 银行信贷风险管理的反思 现状与趋势 银行贷款的质量变化与经济周期.宏观调控政策等存在很高的相关性 现在银行不良贷款的增加主要是前几年经济快速增长时企业过度投资.银行过度放贷所带来的结果. 从历史情 ...

  2. AI公开课:19.02.27周逵(投资人)《AI时代的投资逻辑》课堂笔记以及个人感悟

    AI公开课:19.02.27周逵(投资人)<AI时代的投资逻辑>课堂笔记以及个人感悟 目录 课堂PPT图片 精彩语录 个人感悟 课堂PPT图片 精彩语录 更新中-- 文件图片已经丢失-- ...

  3. 人工智能入门算法逻辑回归学习笔记

    逻辑回归是一个非常经典的算法,其中也包含了非常多的细节,曾看到一句话:如果面试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了. 秉持着精益求精的工匠精神不断对笔记进行 ...

  4. 【逻辑回归学习笔记】

    算法描述 1.逻辑回归要做的事就是寻找分界面实现二分类. 2.问题假设:对一堆三角形和正方形分类. 3.数据输入:已知正方形和三角形的坐标和标签. 4.算法过程: 知识储备 1.分类和回归 ①分类的目 ...

  5. 逻辑回归函数学习笔记

    继续逻辑回归学习,今日笔记记录. 1.逻辑回归和线性回归的关系:对逻辑回归的概率比取自然对数,则得到的是一个线性函数,推导过程如下. 首先,看逻辑回归的定义 其次,计算两个极端y/(1-y),其值为( ...

  6. 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授

    逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...

  7. LVM逻辑卷分区笔记

    磁盘的静态分区有其缺点:分区大小难评估,估计不准确,当分区空间不够用的时候,系统管理员可能需要先备份整个系统,清除磁盘空间,然后重新对磁盘进行分区,然后恢复磁盘数据到新分区,且需要停机一段时间进行恢复 ...

  8. 适合理工直男的钟平老师逻辑英语学习笔记

    一切的一切都只是套路!             --鲁迅 核心公式: En: (状语1) 主(定语1) 谓(状语2) (宾)(定语2) (状语1) Ch: (状语1) (定语1)主 (状语2)谓 (定 ...

  9. 【数字逻辑】学习笔记 第四章 Part2 常用组合逻辑电路与竞争、险象

    文章目录 一.常用组合逻辑电路 1. 译码器 (1) 二进制译码器 74LS138(3/8译码器) a. 一般符号和图形符号 b. 74LS138功能表 c. 两片 `74LS138` 构成 `4-1 ...

  10. 线性回归、逻辑回归学习笔记

    学习源代码 import numpy as np import matplotlib.pyplot as plt def true_fun(X): # 这是我们设定的真实函数,即ground trut ...

最新文章

  1. LoveLive!出了一篇AI论文:生成模型自动写曲谱
  2. ckeditor 在dwz里面使用
  3. 枚举enum与#define 宏的区别?
  4. backbone.js全栈开发
  5. 天气模式_江西现罕见持续阴雨寡照天气 市民开启“花式吐槽”模式
  6. 【数据结构与算法】之深入解析“LFU缓存”的求解思路与算法示例
  7. kafka学习(二)kafka工作流程分析
  8. 利用ABAP调试器脚本修改数据库表的值
  9. thinkpaidE480office安装文件夹
  10. “敏捷开发”怎么就“敏捷”了
  11. (已解决)Mon Apr 08 14:02:29 CST 2019 WARN: Establishing SSL connection without server's
  12. JavaScript --------WebS APIs学习之DOM(一)
  13. 集合的概念以及集合框架的介绍
  14. 性能测试——jmeter性能测试——重点—核心——线程组、Ramp-Up Period、Loop Count 次采样...
  15. 航空售票管理系统php,航空售票管理系统设计
  16. 使用C语言自定义函数计算三角形周长
  17. office 打开wps乱_为什么word文档用wps打开,格式乱了
  18. 荣誉系统排名是整个服务器,魔兽世界怀旧服pvp荣誉系统是什么-魔兽世界怀旧服pvp荣誉系统奖励有哪些_牛游戏网...
  19. EasyRecovery15最新好用的电脑免费数据恢复软件
  20. Oracle小数补零

热门文章

  1. 2019最新Java程序员面试指南——HR的套路+Java常见技术点
  2. html5点击梅花,梅花什么时候开?最早在2月,最晚可到5月
  3. 通过 Browserify 在浏览器中使用 NodeJS 模块
  4. 安全测试工具(持续增加中...)
  5. Linux 安装配置SVN详细步骤
  6. [转]仿京东商城,一号店商品多级分类精美菜单
  7. 【SDCC讲师专访】京东数据库系统研发部负责人田琪的架构之路
  8. 知识付费行业现状及典型模式分析
  9. react-----props
  10. matlab保存读取矩阵