网站首页| 食品新闻| 美食推荐| 热点新闻| 深度观点| 食品辟谣| 农业消息| 金融财经| 健康养身| 企业品牌| 地方食品| 保健食品| 综合新闻 | 国际新闻
> 媒体聚焦 > 正文

华为C/C++编码规范流出 天天时快讯

2023-06-01 18:40:16        来源:面包芯语

规范的代码可以促进团队合作,一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码必定会风格迥异,等到要整合代码的时候也有够头疼的了。

我认为,编码规范,在软件构件以及项目管理中,甚至是个人成长方面,都发挥着重要的作用,好的编码规范是提高我们代码质量的最有效的工具之一。

几乎每个项目,每家公司都会定义自己的编码规范,我们可以参考一下华为公司C/C++的编码规范。


(资料图)

(2)在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时,不要连续留两个以上空格。

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

3、源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。

4、函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。

下面这段函数的注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。

• Function: // 函数名称

• Description: // 函数功能、性能等的描述

• Calls: // 被本函数调用的函数清单

• Called By: // 调用本函数的函数清单

• Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序)

• Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)

• Input: // 输入参数说明,包括每个参数的作用、取值说明及参数间关系

• Output: // 对输出参数的说明

5、边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性;不再有用的注释要删除。

6、注释的内容要清楚、明了,含义准确,防止注释二义性。

7、避免在注释中使用缩写,特别是非常用缩写。

8、注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。

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

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

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

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

13、将注释与其上面的代码用空行隔开。

14、函数的头部应进行注释,列出函数的功能、目的、输入输出参数、返回值、调用关系(表、函数)等。

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

2、命名中若使用特殊约定或缩写,则要有注释说明(说明:应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明)。

3、自己特有的命名风格,要自始至终保持一致,不可来回变化(说明:个人的命名风格,在符合所在项目组或产品组的命名规则的前提下才可使用,即命名规则中没有规定到的地方才可有个人命名风格)。

4、对于变量命名,禁止取单个字符(如i、j、k…),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的。

说明:变量,尤其是局部变量,如果用单个字符表示,很容易敲错(如i写成j),而编译时又检查不出来,有可能为了这个小小的错误而花费大量的查错时间。

2、仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系(说明:在对变量声明的同时,应对其含义、作用及取值范围进行注释说明;同时,若有必要,还应说明与其它变量的关系)。

3、明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等(说明:明确过程操作变量的关系后,将有利于程序的进一步优化、单元测试、系统联调以及代码维护等,这种关系的说明可在注释或文档中描述)。

4、当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现象发生(说明:对公共变量赋值时,若有必要应进行合法性检查,以提高代码的可靠性、稳定性)。

5、防止局部变量与公共变量同名(说明:若使用了较好的命名规则,那么此问题可自动消除)。

6、严禁使用未经初始化的变量作为右值(说明:特别是在C/C++中引用未经赋值的指针,经常会引起系统崩溃)。

2、明确函数功能,精确(而不是近似)地实现函数设计。

3、编写可重入函数时,应注意局部变量的使用(如编写C/C++语言的可重入函数时,应使用auto,即缺省态局部变量或寄存器变量)。

说明:编写C/C++语言的可重入函数时,不应使用static局部变量,否则必须经过特殊处理,才能使函数具有可重入性。

4、编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。

说明:若对所使用的全局变量不加以保护,则此函数就不具有可重入性,即当多个进程调用此函数时,很有可能使有关全局变量变为不可知状态。

假设Exam是int型全局变量,函数Squre_Exam返回Exam平方值。那么,如下函数不具有可重入性。

1、编程时要经常注意代码的效率。

2、在保证软件系统的正确性、可读性、稳定性及可测试性的前提下,提高代码效率。

3、对模块中函数的划分及组织方式进行分析、优化,改进模块中函数的组织结构,提高程序效率。

4、编程时,要随时留心代码效率;优化代码时,要考虑周全。

5、不应花过多的时间拼命地提高调用不很频繁的函数代码效率。

6、要仔细地构造或直接用汇编编写调用频繁或性能要求极高的函数。

7、在保证程序质量的前提下,通过压缩代码量、去掉不必要代码,以及减少不必要的局部和全局变量,来提高空间效率。

8、在多重循环中,应将最忙的循环放在最内层。

9、尽量减少循环嵌套层次。

10、避免循环体内含判断语句,应将循环语句置于判断语句的代码块之中。

11、尽量用乘法或其他的方法代替除法,特别是浮点运算中的除法。

12、不要一味追求紧凑的代码。

关键词:

上一篇:博信股份(600083.SH):公司销售的智能扫地机器人、空气净化器、无叶风扇均为自有产品 世界今热点
下一篇:最后一页