如何编写优质、高效、益于维护的C++代码

原创 2006年06月16日 14:00:00

如何编写优质、高效、益于维护的代码是每个程序开发人员都关心的一个话题,尽管大家都知道一些,但是在实际写代码时还是会犯一些错误,下面就结合我的一些经验写一点总结,供大家参考:

1、首先是程序中变量、函数及类等的命名,这是一个老话题,但是很重要。尽量是看了你的命名就能大致明白变量或者函数的意义和作用。如成员变量一般都别忘了加上前缀"m_",对于整型值别忘了加上"n",float型加上"f",char类型的加上"sz",这些都是大家最常用的也是默认遵守的,这样别人很快能看明白你的代码。

2、对于函数的流程一定是设计清晰明了,在程序中一般不要用goto语句,程序的循环不要超过三级,过多了程序结构就复杂了,维护时比较费劲,能写成递归的尽量写成递归,因为比起循环来易于理解和维护,但是递归层次不要太多,太多了递归调用的效率比较低。

3、对每一功能能写成函数就尽量抽象成一个函数,一般一个函数的代码不要超过60行,太长了确实看起来比较费劲也比较难于维护。代码过长的可以将其功能再细分,拆分成多个函数。

4、程序中多用TRACE和ASSERT(Debug下)和VERIFY(Release下)。

5、程序中每个函数的定义尽量定义成带返回值的,并在函数的调用处做返回值检查,在检查出错的地方打出日志或者提示信息,这样有利于程序的调试,特别是超过几万行代码的大系统,这一点显得尤为重要。

6、在带指针的函数中一定要注意在使用前先检查这个指针是否为NULL;对于一内存缓冲或者对象删除时在delete后最好对它赋值为NULL。

7、对于某一缓冲区copy内容时一定要别忘了缓冲区空间是否够大的判断。实际上很多初学者的程序BUG中很多都是由于缓冲区溢出或者是操作空指针所导致的。

7、如果程序需要动态申请内存,最好每次申请的增量内存块不要刚好够存放新数据,这样需要经常反复申请不利于程序的效率。

8、在程序中多加注释,可以如如下的格式:
//***********************************************************//
//  功能:到域名缓冲中去查IP        
//  如果冲突则继续找,直到找到其Hash结点为止   
//  调用者:            
//  参数:1、szHostName 主机域名      
//   2、szIp 返回的IP        
//   3、nKey 返回的Hash表下标      
//  返回值:bool         
//  备注:
//***********************************************************//
最好对每个参数也进行一下说明,格式也比较整齐。对于在VC开发环境下的使用者可将整个格式写成一个宏接口,并添加到你的自定义工具栏中,这样每次注释一个函数时只需要点一下工具栏按钮即可自动形成上面的格式,你直接添写内容即可。

根据自己的一点经验了也就粗略地总结了这么多,本人觉得只要能做到以上几点,你的代码就算不是很完善,但至少看上去也优美,让别人看了你的代码也觉得好维护,很舒服的感觉。

如何写出高效C++(实现)

26.尽可能延后变量定义式的出现时间 你不止应该延后变量的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给它初值实参位置,好处是不仅能够避免构造(和析构)非必要对象,还可以避免...
  • hello_bravo_
  • hello_bravo_
  • 2016年08月15日 17:11
  • 519

如何编写高效的代码

概述 随着Java的广泛应用,越来越多的关键企业系统也使用Java构建。作为Java核心运行环境的Java虚拟机JVM被广泛地部署在各种系统平台上。对Java应用的性能优化也越来越受到关注;谈到Ja...
  • lifuxiangcaohui
  • lifuxiangcaohui
  • 2014年05月03日 14:22
  • 1512

C++ 高效编程之代码规范

本文将一些常用的代码注释、命名等规范总结下,良好的代码规范不仅让自己...
  • u011686361
  • u011686361
  • 2017年01月02日 16:55
  • 410

如何高效编写可维护代码?

原文:How to make your code self-documenting? 译文:怎么让代码自我文档化? 译者:dwqs 在代码中找到一个放错地方并且没有用的注释是不是很有趣呢? 怎...
  • u011043843
  • u011043843
  • 2014年12月23日 10:50
  • 818

c++ 面向对象高效编程 【笔记】什么是面向对象编程?

面向过程与面向对象:面向过程编程:面向过程解决问题的方法是解决的问题转化为一组函数,这种编程方法是从函数的角度来思考问题,也称为问题的功能分解。 这种方法缺陷: 缺乏安全性,任何程序、代码都可以直接...
  • sinat_26908721
  • sinat_26908721
  • 2016年10月25日 15:45
  • 310

如何写出高效率的sql语句

转自 http://jianglin.blog.51cto.com/676726/134264 (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):      Oracle的解析器按照从...
  • jiary5201314
  • jiary5201314
  • 2016年07月26日 20:37
  • 3391

【《代码整洁之道》精读与演绎】之一 让代码比你来时更干净

“我们就是一群代码猴子,上蹿下跳,自以为领略了编程的真谛。可惜当我们抓着几个酸桃子,得意洋洋坐到树枝上,却对自己造成的混乱熟视无睹。那堆“可以运行”的乱麻程序,就在我们的眼皮底下慢慢腐坏。” ...
  • zhmxy555
  • zhmxy555
  • 2016年07月31日 19:00
  • 16520

让 C 程序更高效的 10 个建议及很酷的 C 语言技巧及编写高效的C程序与C代码优化

代码之美,不仅在于为一个给定问题找到解决方案,而且还在代码的简单性、有效性、紧凑性和效率(内存)。代码设计比实际执行更难 。因此,每一个程序员当用C语言编程时,都应该记着这些东西。本文向你介绍规范你的...
  • benpaobagzb
  • benpaobagzb
  • 2016年03月06日 22:01
  • 803

《编写高质量代码改善C++程序的150个建议》摘录

内容摘自《编写高质量代码改善C++程序的150个建议》:   第一部分 语法篇   第1章   从C继承而来的 建议0:不用让main函数返回void          main函数的返回类型是int...
  • fengbingchun
  • fengbingchun
  • 2013年06月28日 09:09
  • 6086

编写高效的android代码

分类: Android开发2013-06-28 18:04 367人阅读 评论(1) 收藏 举报   无论怎样,基于android的设备也是嵌入式设备。现代的手持设备,与其说是电话,更像一台拿在手...
  • diaoguangqiang
  • diaoguangqiang
  • 2014年03月02日 10:48
  • 409
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何编写优质、高效、益于维护的C++代码
举报原因:
原因补充:

(最多只允许输入30个字)