百科问答小站 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 编译器优化过程中的 Bug》? 
  如果将《上古卷轴 5》做成中国风,那会是怎样一个世界? 
  intel x86指令编码存在多个选择时如何选定opcode? 
  <<深度探索c++对象模型>>中的虚继承看着蛋疼,感觉这在实际中也没多大用,需要继续深究吗? 
  怎能给孩子讲用c++解决鸡兔同笼问题,百钱买百鸡等问题,也就是c++的for循环嵌套枚举? 
  开源代码里某个函数很长,这种代码能否认为是好的? 
  中国何时能制作出能与《上古卷轴》,《生化奇兵·无限》,《辐射3》媲美的单机游戏? 
  为什么把内核镜像放在u盘里,电脑(BIOS)加载失败? 

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





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