C和C++的一点数据

原创 2007年09月13日 09:42:00
linus的一席言论引爆了C和C++社群间的“战争”。无论如何,我不会趟这趟混水。因为两种语言都是我的珍爱。C代表了我编程生命的童年,而C++代 表了青年时代。(呵呵,中年还没到呢。)长时间用C++,不玩儿点C技巧是不可能的,任务所致。只是在必要的时候用,必须恰到好处。但对于我而言,C技巧 是必不可少的。(对于C++的新手,请慎重)。
唉,同室操戈,令人心痛。
我在网上找到了一点点有代表性的数据,用以表明两种语言的各自特 征。如果有机会,我还会把得到的数据贴上来,供大家参考、分析。希望能够减少一些无用的争论。(有用的争论自然应鼓励,但至少不是linus的这种主观的 论断和谩骂。那两句粗口,有损其高手的名分(我还不敢称其为“大师”))。
====================================
1、Quantifying the Debate: Ada vs. C++(www.stsc.hill.af.mil/crosstalk/1996/07/quantify.asp)
这篇比较老,原是用来比较ada和C++的,C作为陪衬。但数据是挺直观的。主要集中在软件工程方面,如平均每功能点代码行数、错误数、费用等等。
这篇文章包含军事方面的项目,可以是给军方做参考用的,从链接上看,是美国空军
Software Technology Support Center。(也许是用来评估JSF项目用什么语言的,瞎猜)。应当比较客观。只是很老,那时的c++和现在也不一样。
2、
Quantifying Behavioral Differences Between C and C++ Programs(http://www.cse.ucsd.edu/~calder/papers/JplVersion.pdf)
这篇也是95年前后,网站是University of California, San Diego文件名上看似乎是喷气推进实验室的论文。
文中主要集中在性能方面,包括直接和间接调用数、调用相关代码数,甚至是catch命中率。
文章并不说好坏,只说差异。得出了如下基本结论:
  • C++ programs often perform an order-of-magnitude more indirect procedure calls;
  • procedures execute three times more instructions that C++ procedures (including methods), on average;
  • C and C++ programs have basic blocks of approximately the same size; C programs execute more conditional branches than C++ programs and C++ programs execute more procedure calls, indirect procedure calls, and returns than C programs;
  • C++ programs issue more loads and stores than C programs,
  • C++ programs allocate far more objects from the heap; and
  • C++ programs have worse instruction cache locality;.
需要说明的是,这个比较基于95年前的C++。此后,C++的特性发生了比较大的变化。 

有C/C++/Java基础的,学习Python一篇文章就够了

有C/C++/Java基础的,学习Python一篇文章就够了
  • qq_29591261
  • qq_29591261
  • 2017年08月11日 20:21
  • 1074

面试---c和c++的区别

C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。C++首要考虑的是如何构造...
  • will130
  • will130
  • 2015年09月23日 17:23
  • 770

已知一点经纬度,方位角,距离,求另一点经纬度

参考了博文:http://blog.csdn.net/pyx6119822/article/details/52298037 -------------------------------------...
  • zengmingen
  • zengmingen
  • 2017年03月30日 17:28
  • 2831

C++ 学习基础篇(一)—— C++与C 的区别

程序的学习学无止境,只掌握一门语言是远远不够的,现在我们开始C++的学习之路,下面先看下C++ 与C 的区别 一、C++概述 1、发展历史       1980年,Bjarne Stroustrup博...
  • zqixiao_09
  • zqixiao_09
  • 2016年04月24日 20:36
  • 16946

C与C++的区别与联系

(1)C++与C语言相比有何特点 的的
  • zhonghua18517
  • zhonghua18517
  • 2014年08月13日 14:50
  • 3588

细数C++和C的区别

C++语言是对C语言的扩展。所以熟悉C语言的人会发现,本书的第01~18章讲的内容基本上和C语言的内容差不多。C++一方面对C语言的语法进行了修改,另一方面又添加一些新的概念。 C++中新增的概念有:...
  • iamshaofa
  • iamshaofa
  • 2015年03月16日 12:58
  • 5301

C++与C有什么不同

C是一个结构化语言,它的重点在于算法和数据结构。对语言本身而言,C是C++的子集。C程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理,得到输出。对于            C++,首要考虑的...
  • gongsai20141004277
  • gongsai20141004277
  • 2016年06月24日 00:12
  • 479

C++(19)类与数据抽象

类 --类的定义和声明【上】 引言:    在C++中,用类来定义自己的抽象数据类型。通过定义类型来对应所要解决的问题中的各种概念,可以使我们更容易编写、调试和修改程序。可以使得自己定义...
  • u011225629
  • u011225629
  • 2015年08月08日 19:41
  • 1211

关于C与C++的区别

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等...
  • jxw167
  • jxw167
  • 2017年06月02日 14:17
  • 578

21点小游戏C++代码

#include #include #include using namespace std; #define NUM 1000 int j=2;//定义为全局变量 int randNum...
  • lujiazhi0123
  • lujiazhi0123
  • 2012年12月10日 23:03
  • 868
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C和C++的一点数据
举报原因:
原因补充:

(最多只允许输入30个字)