C与C++的争论(序言)

还记得学校考二级的时候,选个了QB(Quick Basic),因为学习过C/C++和QB,比对了一下觉得C++太难了,特别是指针、模板、回调等等,最终选择了QB。可是,毕业后发现QB根本就过时了,至少要用VB或VC才有前途,而且网上的资源多,老鸟也多,回答问题也很快。而现在,.NET是基本配置,可是我想说的是其实开发语言说到底只是工具,相对于同一类型的开发工具,你完全可以把它当作一个普普通通的软件,也就是只有好用与不好用。其实对于老鸟来讲,什么语法学习起来都是很快的,主要的是这个开发环境本身封装好的东西,或者说提供给你的解决方案(如VC的MFC,Dephi的VCL),以及开发工具本身才是学习的重点。当然语言基础是必不可少的,这也是我想先码这部分的原因之一。

电脑对很多人来讲挺神秘的,特别是它是怎么运行的。其实我觉得和人的运作差不多,它需要存储的媒介就像人需要存储能量,或者说食物(转化成能量),这就是电脑的硬盘和内存;它需要处理信息的媒介就像人的大脑,这就是CPU(中央处理器);它需要输入输出的媒介就像人的手脚,为我们抓起食物、搬起绊脚石,就像电脑的键盘、显示器等。可是电脑没有人脑那么复杂,它更纯粹,处理的都是二进制数据,也就是电子上的高低电平,所以对于电脑来说,存储也好,信息处理也罢,输入输出也行,都是一堆的二进制数据,只是它按我们规定好的规则在输入、处理、输出。对我们来说,二进制太不好理解了,所以我们把它组织成Byte、Int、String等各种数据类型,包括CPU命令的处理也是,比如嵌入式开发常听到的16位和32位CPU,实际上就是指CPU在处理数据时的单位元,也就是说16位的CPU不管是指令还是数据的处理单元都是16位(bit),32位CPU则是32位。为什么说这么多呢,主要的目的就是让大家不要对软件开发中的指针呀,数据结构、类型什么的觉得太难,因为都是数据的存储,也就是最终都是化为二进制数据,当然我们会以Byte做为最小单位,而不会用bit(bit就是二进制数据流的最小单位)。

下面整理的这些文章来说,都是相对于有学习过软件开发的人来说,因为不会再去解释各种基本概念,一般也不会给出太多的定义性的东西,如果你要找定义,可以去查找相关的书籍。

在C与C++流行的那个年代,大家对使用C还是用C++有过很大的争议,我想就从这个争议来开始这一系列的文章。我的理解,C是用于对向过程,C++是用于面向对象,所以并不冲突。比如说当你要开发一种算法,那我会建议你用C,当你要开发一个客户应用程序,我会建议你用C++。同时,也要结合情况来决定你要用哪种语言,如嵌入式的驱动开发,这就不适合用C++来开发。C与C++各有自己的的优点,并不可一概而论,在一个产品的设计中可以C与C++并用,这也是很正常的情况,但要提醒的是,不要乱引用,C与C++的模块要相对独立,能做到决对的独立最好,切不可出现互相交叉调用的情况,这会严重影响你的结构及代码质量。

C与C++最主要的争议点就是C++的程序大、负担重,也是面向过程和面向对象设计的争议,可是C++的优点是优良的模块化让程序更清晰,质量提高,维护成本降低等。也有人觉得完全可以用C来实现C++的效果,其实不然,你可以去尝试一下,拿一个项目分别用面向过程和面向对象两种设计,特别是对于应用软件。具体的就不多说了,因为只有亲身体会才会有所体会。所以说软件开发,重点在开发,动手去做,只有亲身体验才是最难忘的,记得这句话,大家多多练习哦。我个人更偏向于C++,特别是对于CPU、MPU高速发展的今天,现在一块Cotex A8为核心的平板平台也就几百块RMB,更不用说PC平台了,当性能、存储等已不再是负担的时候,软件的扩展性、可维护性、模块化等对于软件开发来讲会更重要。

用什么样的语言不重要,重要的是达到目的,所以现在的你不用纠结于用什么语言,先把两个都学好再说,机会都是给有准备的人,如果准备都没有还谈什么选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值