百科问答小站 logo
百科问答小站 font logo



为什么游戏引擎大多选择使用 C++ 而不是 C 开发? 第1页

  

user avatar   yao-dong-27 网友的相关建议: 
      

C++的开发效率肯定是高于C的,高一倍没压力,所以可以用省下来的开发时间去做性能优化。

一般来说,没有优化过的C++代码用 Profiling工具压榨出2~4倍的性能是很可能的。

而用C就算性能好,也没好到C++的3~4倍,好10~30%就不错了。

极端优化后的代码,C要好于C++,但是相同时间内开发出来的代码 C++性能会好于C,而且C++可读性可维护性要远远好于C。


user avatar   chunquedong 网友的相关建议: 
      

我也曾经试着用C写,可结果发现开发效率、代码可读性,都不是一个档次的。最后才明白,发明C++的人确实是为了解决一些问题,而不是闲的蛋疼。

--------------------

由于第一次获得这么多赞,我补充一下。

当初我是非常讨厌C++语言的,我认为C++能做的C都能做,它只是个语法糖而已,简单才是最美的,为什么我要去浪费时间研究那些诡异的特性。

后来慢慢的我对C++的态度变了,现在我觉得C++虽然不完美,但是够用。它比C可读性好,做到了开发效率和运行效率的折中,是我写代码的首选语言。


user avatar   frmf 网友的相关建议: 
      

C++有一个重要的指导思想,叫做zero-overhead principle,一般翻译成「零开销抽象原则」,英文的描述是:What you don’t use, you don’t pay for (in time or space) and further: What you do use, you couldn’t hand code any better. 大概的意思就是说你在使用C++的时候,你不用为你不需要的功能付出时间和空间上的成本;你需要使用某个功能的时候,你直接手撸的代码不会比C++已经实现的功能更好。

重点在第二句,可以这样理解:对于C++里面已经实现的一个功能,你无法『用C』写出一个比它更好的实现。也就是说,如果嫌弃C++某个功能实现复杂臃肿,你自己用C去实现一个,写了一大堆代码,最终在时间和空间复杂度也不会比C++的更好。说白了就是吃力不讨好,耗费时间精力的事情C++已经帮你做好了。

只要知道C++的指导思想是领开销抽象原则,就不会怀疑稍微复杂一点的功能为什么更应该选择C++而不是C,因为你用C实现出来的,不会比C++的更好。你想要的东西,无非只是C++编译器几十年来一直在做的事情而已。

正因为如此,连C编译器都已经改用C++实现。better C不是作为口号喊喊而已。

欢迎关注个人公众号「树屋编程」,目前主要是C/C++相关。我每周会抽出1~3小时写一篇文章发上去,关于zero-overhead principle,我以后应该也会发一篇详细的带例子的。

评论区因为有人吵架我关闭了




  

相关话题

  个人或者小团队选择C语言还是c++? 
  C/C++ 数组大小需要是2的倍数吗? 
  中外游戏的制作的差距到底是因为什么? 
  C++ 的 switch 为什么不自动加 break? 
  C++中开多个数组和用struct封装起来哪个速度更快? 
  Unity3D和UE4哪个才是未来的方向? 
  #define 不是简单的替换吗,为什么下面的代码错误? 
  如何理解互斥锁、条件锁、读写锁以及自旋锁? 
  Unity3D和UE4哪个才是未来的方向? 
  能否把高版本的libstdc++静态连接到一个只暴露纯C接口的动态库中,给低版本c++程序调用? 

前一个讨论
大部分西方人是不是不吃内脏(特别是消化器官)?为什么?
下一个讨论
自己的车被借走后遇到过哪些坑爹事?





© 2025-01-30 - tinynew.org. All Rights Reserved.
© 2025-01-30 - tinynew.org. 保留所有权利