gxqcn 发表于 2011-12-31 09:04:14

C 与 C++ 极限运行效率哪个高?

今天看到如下名言:
Good C++ code is better than good C code ,but bad C++ code is much much worse than bad C code.

后面半句大家肯定认同,前半句呢?
不妨说说你的看法。

风云剑 发表于 2011-12-31 09:21:03

说的并不是运行效率吧。
代码的好坏体现在多个方面,可维护性、可移植性之类的也很重要。
运行效率上讲,我认为C++没可能超过C。

wayne 发表于 2011-12-31 09:21:25

1# gxqcn
Good C++ code is better than good C code 
C++有很多C所没有的高级语言的特性,比如类与对象,泛型。这些特性使得C++在某些上层的应用领域,编程变得非常的容易,且编出来的作品 易于阅读,易于维护。
而如果用C来实现同样的功能,代码只可能会特别的庞杂。
我相信一个很简单的原则,代码越少越好。

况且,由于历史的原因,C++肯定 比C要安全很多。
最新的C也只是C99,而最新的C++则是C++0X了,
没有大量的C语言 应用程序设计经验的人 设计软件的周期有多长先不说,就看设计出来之后,肯定会留下大量的安全漏洞的。这应该是C语言在设计上的硬伤。

当然了,不可否认,C语言也能诞生出特别优秀的软件,比如linux,git,但C语言的硬伤还在,他们改不了语言,只能提出一堆的workaround 。workaround 终究还只是workaround ,不是解决问题的根本之计

wayne 发表于 2011-12-31 09:33:25

呵呵,一口气写这么长的话,
我深知在班门面前不能随便弄斧
可又觉得我不弄的话怎么知道自己与高手的差距。。

wayne 发表于 2011-12-31 09:35:16

晕,答题没打到点子上,:*-^。
极限运行效率是啥意思,
是不考虑各种情况的quick and dirty的那种原始版本的代码吗

gxqcn 发表于 2011-12-31 09:41:23

我今年上半年用C写了部分大数算法,
后来跳槽等原因暂时中断了,
现在工作中用C++写算法(之前是用C,因为是嵌入式开发),
感觉C++也蛮不错的,尤其是用比较高级的IDE开发环境,
所以又再反思:到底用C,还是C++进行我的业余开发?

无可否认,C++可以写出非常优美、非常便于维护的代码,
而C可以写出非常轻灵的代码,
但终极运行效率呢?这是我比较在意的,因为我比较追求高手对决的快感。

如果真如引言那样,我是不是该考虑还是用C++写核心算法?
但尽量避开其不必要的开销部分,从而达到鱼和熊掌兼得?

wayne 发表于 2011-12-31 09:47:51

1# gxqcn

老大,
我觉得这话得放在具体的环境里,特别的条件下,才能鉴别个高下来。
不然就跟windows和linux谁更优秀的争论一样,没有答案的

gxqcn 发表于 2011-12-31 09:53:03

我的意思是比较大的一个工程,如果用C++设计,需要很多类,需要用到复合继承甚至多态等特性,
如果把它完全用标准C改写,效率能否再提高一点?
当然,我指的是有一定编程经验的人士,各自写出的代码都足够高效。

风云剑 发表于 2011-12-31 09:55:53

C最新标准是C11,
C++最新标准是C++11(其实就是C++0x)
总之,我的观点还是,要达到极限运行效率,只能放弃各种优越性和便利性,使用最基础的语言特性,在这种极端情况下,C++和C没区别,C++编译器能做的,C编译器也一样能做。

gxqcn 发表于 2011-12-31 10:02:10

说的也是,STL够高效,但要追求极致,往往还是定制来得好,也就是用尽可能原始的东西,
有时为了照顾通用性不得不对效率略有损失。

所以,我对“Good C++ code is better than good C code”持很大的怀疑。
页: [1] 2 3
查看完整版本: C 与 C++ 极限运行效率哪个高?