新手学习C语言/C加加编程,养成良好的代码风格

C语言是面向过程的,而C++是面向对象的

C和C++的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

今天在看C++ Primer一书中运算符重载这部分内容时,我突然认识到,就算是同样的代码,一个字符不差,但是不同的风格,也会给人带来不一样的感觉。

下面是C++ Primer一书中对于Sales_item类的==运算符重载函数,先看看书上的代码:

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

下面是自己写的:

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

不用怀疑,这是一模一样的代码,代码的功能也不是本文的重点,这里只是从代码风格上考虑,你会觉得哪种会让你看起来赏心悦目,哪一种又让你看起来昏昏欲睡呢?反正我是觉得书上的代码看起来舒服很多:

书上的写法把inline bool自成一行,可以清晰的看见返回值类型,不像我所写的返回值类型,函数名,形参表等挤在一行,重点可能因此就被埋没了;

书上的写法把每个做相等比较的语句放一行,看上去一目了然,而不是像我把2个&&都写在一行了,阅读的时候还要到处找==表达式。

上面只是一个简单的例子来说明代码风格的重要性,还有很多的编码规范需要注意,比如变量命名啊,注释啊等等,这不是一篇文章所能说清楚的事。

一般来说,大的公司内部会有自己的编码风格要求,如华为内部的华为c语言编程规范,你在刚进入这些公司的时候,这些肯定是要去阅读的,如果你不想在review代码的时候被你同事嫌弃的话。

如果你的公司没有类似的文档要求,也没关系,网上有份Google-C++编程规范相信会值得你去仔细阅读品味,这是李开复宣称的地球上最好的一份C++编程规范,没有之一,由此可见它的权威性了。

下面是从网上搜索的一张涵盖了Google-C++编程规范大部分内容的说明图,可以在短时间内快速掌握规范的重点内容。不过一张图毕竟不能代替文档,有时间还是把这个文档认真阅读一遍吧,文章末尾会给出下载地址。

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

这些是C/C++能做的

服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180309A1NIAF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券