百科问答小站 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,我以后应该也会发一篇详细的带例子的。

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




  

相关话题

  如何看待华为全面下架腾讯游戏,回应称「因腾讯单方面就合作做出重大变更」?对游戏行业会有哪些影响? 
  为什么图形学人才这么少? 
  typename = int 这种语法的意义是什么? 
  完成了c语言程序设计初步学习,大概了解了数据类型,循环,判断,数组,函数和指针。接下来该学什么(书)? 
  哪些游戏改变了你的人生路线? 
  字符串转化成整数,为啥我觉得我写的没有毛病呢? 
  C++中,auto关键字有哪些乱用的情况?平时使用有哪些坑? 
  网上有对于C++编程要避免使用cin、cout、fstream;而是使用scanf、printf、FILE *的说法, 请问是正确的吗? 
  怎样理解C语言是才是代码的精髓,可以让你领略不一样的世界这句话?(其实就是怎么翻译成人话-_-# 
  制作一个P社游戏的流程是怎样的? 

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





© 2024-09-19 - tinynew.org. All Rights Reserved.
© 2024-09-19 - tinynew.org. 保留所有权利