关闭

C++编程规范随想录

发表于:2012-7-09 10:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:feixiaoxing    来源:51Testing软件测试网采编

  对于我这样一个C语言的程序员来说,编写C++的机会其实不太多。但是我还是比较喜欢写C++语言,原因主要有几个方面:

  (1)自己学C++语言的时间比较长了,也比较了解,如果从大一的时候算起,现在也有小十年了;

  (2)windows下面的开发工具确实很好用,比如调试器调用、汇编代码查看也方便,学起来其实没有什么障碍;

  (3)基于C++语言的开源项目还是比较多的,比如说的eMule、webkit、notepad++、libsvm,掌握好C++语言对自己的帮助还是挺大的。

  和很多朋友一样,我自己的C++学习也是非常曲折的,这其中主要有下面几个阶段。刚开始,在大一刚刚入学的时候,我们集中学习了C++的基本语法,其实我也不清楚为什么要在大学设置C++这门这么难的语言,其实对于很多工科的同学来说,C语言已经是绰绰有余了,况且能把C语言学好本身就已经很不错了。后面,随着C++的了解,我开始用MFC编写一些小程序,什么串口工具、聊天工具、FTP下载工具、图像处理工具等等,这个时候看得比较多的就是侯捷的《深入浅出MFC》。当然后来随着MFC使用的频繁,对C++语言的了解也更加深入,这个时候更多地关注C++语言的实现细节,什么《Effective C++》、《C++ Template》、《Inside the C++ object》、《Effective STL》,此时恨不得不自己会的所有技巧都用上,充分发挥C++的特性。等到工作之后,由于工作的关系更加偏重于实时操作系统,自己对编程语言有了新的认识,不再盲目追求语言的特性,而是更注重系统的稳定、项目的开发进度和语言本身的简洁和高效。无疑,在这些要求下面,C语言就是最佳的选择,因为你可以清楚地了解每一行语句后面CPU都帮我们做了些什么。我看过的很多操作系统代码,比如ucos、rt-thread、linux、vxworks都是用C语言编写的,很简洁也很高效。

  网上有位知名的朋友叫云风,早期在他写的书《我的编程感悟》当中也是对C++大加褒奖,可是在后来的工程实践中反而感觉到C语言才是最好用的语言。相信很多的朋友都有类似的经验。当然,不可否认C++还是存在很大的市场,但是它的应用范围和过去相比,确实是大大缩小了。一方面,精通C++的人实在是太少了,用好C++的人更是凤毛麟角;另外一方面,C++的学习代价、应用代价实在是很高,你没有办法要求项目组里边的每个人都有很高的C++应用水平,这是没有办法做到的,就算做到了,代价是十分昂贵的。所以,为了消除彼此成员之间的差别,很多时候C++的编程规范就变成了C语言的编程规范,这可以从google C++ style guide可以看出来。

  所以,今天这里写这篇文章,主要是就C++写一些自己的总结,谈谈自己的看法,欢迎各位提出宝贵意见。

  (1)总则

  a)尽量选择所有编译器都支持的C++标准

  b)必须了解类的内存分布结构

  c)必须了解编译器对C++的隐形操作

  d)指针是所有错误的来源,尽量用引用代替

  e)用const对入参、出参和类函数进行限制

  f)多用namespace限定类的作用范围

  g)少用C++的高级特性

  h)时刻在需要处理C文件的时候添加extern “C”

  i)string类是万恶之源,尽量少用

  (2)头文件

  a)定义头文件的时候首先添加编译宏

  b)添加最少的头文件依赖

  c)头文件名争取和类名一致

  d)头文件中只包括类型定义、宏定义和函数声明

  e)类的头文件和实现文件一一对应

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号