c语言某些优于c++的地方

    c++是c语言的升级版,然而c语言却在某些方面优于c++。好多开源库源码,很多都是c语言,极少c++,印象中只有facebook的thrift,谷歌的glog以及Jsoncpp是用了c++。这可能与库的特点有关,

兼容性要强,并不像应用软件一样,对开发周期卡的很紧。这就使得库作者,可以静下心来制作各种轮子,因为可以长期使用,所以这些轮子的制作成本也就分散了。

所以关键不在轮子本身,只要轮子足够的好用,不出问题。这就解决了轮子问题。

    c++有面向对象,可以将函数和变量封装一下。而c也是有struct的,变量和函数指针也都可以打包在一起,这样几乎是面向对象。当然挂载的函数是游离的,但只要符合一定命名法则并放在一定的文件中,

也就很整洁了,可读性也不会太差。只把类当作类使用,反倒避免记忆c++那一堆初始化和默认函数规则。当然有时要写一些init函数,而c++的类很多也都会设计init函数。

c语言的库大部分都使用了Impl设计模式,能减少编译时间,可能主要还是接口和实现分离吧。动态绑定需求场景真不多,但面向接口编程真的是范式了。这就解决了封装问题。

   c语言缺乏template,后果是要把list,散列表等手动实现一遍。好在代码可读性提高了。另外linux系统也提供了一些现成的链表接口,如 TAILQ系列,也足以应付日常动态扩增的资源。

   

  

 

 

 

 

 

    

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值