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++ 的一点书txt格式

  • 2008年04月27日 10:51
  • 395KB
  • 下载

Eclipse开发C/C++ (CDT安装详解)和汉化包安装的一点发现

以前在eclipse中进行c或c++语言开发时都需要安装cdt,汉化时需要汉化包。我从网上找教程一般都是用eclipse更新或者下载cdt包本地安装,本地安装有两种方法一是用link的方式指定cdt包...
  • ssjssh
  • ssjssh
  • 2012年09月08日 09:41
  • 1505

对c和c++中内存的一点总结,很多来自网上

对c和c++中内存的一点总结,很多来自网上,原来是记在word里的笔记,粘贴到blog上来。大一上学期学习c语言是没有学习过内存,专业问题学校的书上没有这节的介绍,导致后面的指针、内存的很多点都半懂不...

更深入一点理解 switch 语句 及 c/c++ 对 const 的处理

  更深入一点理解 switch 语句 及 c/c++ 对 const 的处理 收藏 更深入一点理解 switch 语句 及 c/c++ 对 const 的处理                    ...

c/c++常见面试题,希望能给找工作的朋友一点帮助

1.指针和引用有什么分别;如果传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?      (1) 引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以...

对c&c++源文件和头文件分开的好处的一点认识

对c&c++程序来说,基本上来说都是要把源文件和头文件分别编写。一般都是代表一个基本功能的源文件引用相应的头文件。一个 相关功能的模块可能有若干对源文件和头文件组成。这是基于组件编程的核心。在我看来,...

C/C++语言中sizeof对于数组的一点总结

C/C++语言中sizeof对于数组的一点总结 博客分类:  技术 CC++C#D语言面试  最近在面试中被问到了几个有关sizeof的问题,自我感觉都回答对了...

c/c++性能优化--- cache优化的一点杂谈

之前写了一篇关于c/c++优化的一点建议,被各种拍砖和吐槽,有赞成的有反对的,还有中立的,网友对那篇博客的的评论和吐槽,我一个都没有删掉,包括一些具有攻击性的言论。笔者有幸阅读过IBM某个项目的框架代...

关于C/C++内存一点小知识

这里室友拷了一段代码过来调试,这个过程中发现了一点由使用了未分配的内存造成的一个问题,为此我花了一点时间来调试问题的根源; 代码如下: #include #include using name...

关于C++ 类数据成员初始化的一点总结【为什么类定义中不能初始化成员变量】

往往被初学者忽视的是,C++类中的数据初始化是有jia
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C和C++的一点数据
举报原因:
原因补充:

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