C和C++相比,C的优势在哪里呢?

james_hw 2010-06-08 05:57:29
今天去面试,是嵌入式岗位,但是和我之前的工作不同的是,这家公司嵌入式代码是用C++写的,我对C++的了解只停留于表面,因此C++较深层次的问题我都没能回答。我抱怨了一下,在嵌入式里大都用c开发,这时面试官问了一下,那你觉得为什么嵌入式里应该用c开发呢?c的优势在哪里呢?

突然间被问到,引起了我的思考,应该说用c开发的代码,我还想不出用c++开发不了的(感觉语法等等,C++都兼容了C)。那C的优势到底在哪呢?难道是效率,现代编译器优化的效果非常明显,应该说C++的效率已经非常接近C,难道是C++的库文件太大了,嵌入式设备中放不下?这个应该不是瓶颈,因为外存的容量再不断扩大。而且日本人也制定了一个裁剪的嵌入式C++标准,库也大大缩小了。

那C的优势到底在哪里?
...全文
5345 72 打赏 收藏 转发到动态 举报
写回复
用AI写文章
72 条回复
切换为时间正序
请发表友善的回复…
发表回复
guobaoyun0923 2011-05-10
  • 打赏
  • 举报
回复
c++是面向对象的,代码更为复杂吧,c是基础的代码,c++比c的突出优点是:封装性,进程性,多态性
gz_qmc 2010-06-11
  • 打赏
  • 举报
回复
好东西出炉
刚升级的逻辑计算器
需要的赶紧去下载了
http://topic.csdn.net/u/20100611/10/0fa785f8-f697-44ef-8883-c1d3e5492a5d.html?28108
liutengfeigo 2010-06-10
  • 打赏
  • 举报
回复
记不得哪位C++大牛在哪本学习C++的书的前言里面说过
“用C语言1000行源码能完成的工作千万不要用C++重写!
小红星,我都告诉你了,是thinking in c++ 的作者说的。
琅琊榜 2010-06-10
  • 打赏
  • 举报
回复
C就是简单 ~~~~~~~~~
Tiger-1985 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 52 楼 gjqdestiny 的回复:]
我个人认为楼上各位说的最多的一条就是简单,C没有类,C++的API函数常用的也有几千个,而嵌入式一般都是一些要求不是很高的产品,无需花费这么高的费用去用C++开发研究,而C++也可以编底层的程序,很多的驱动是用C++编的,总体来说,就是C++开发的产品应该是比较深的
[/Quote]
不敢苟同啊,我司几百万行代码的平台,全是用C编写的,它的复杂度和难度不亚于任何C++开发的产品吧。C语言简单,并不代表它只能做简单的事情
AOXIANG158QQ 2010-06-09
  • 打赏
  • 举报
回复
更加简单,使用更加广泛。
xhp7185 2010-06-09
  • 打赏
  • 举报
回复
涨见识了
lzh9955 2010-06-09
  • 打赏
  • 举报
回复
是啊,当真正面对这个问题的时候确实不好定性,只能是各有所用、各有千秋!
z569362161 2010-06-09
  • 打赏
  • 举报
回复
C的优势是比C++少了两个+
liang800518 2010-06-09
  • 打赏
  • 举报
回复
学习了~~
liang118038liang 2010-06-09
  • 打赏
  • 举报
回复
简单,和体积小,适合资源受限环境么,这是最明显的优势啦!
happytang 2010-06-09
  • 打赏
  • 举报
回复
嵌入式里面使用c应该远远大于cpp
编译器支持的复杂度是重要原因,二是语言本身使用的复杂度
三是先入为主的原因,c的历史悠久;软件在各平台操作系统间移植比较成熟
不恰当的例子就像qq,后续的即时通讯软件都干不过qq;客户群太大了。
gjqdestiny 2010-06-09
  • 打赏
  • 举报
回复
我个人认为楼上各位说的最多的一条就是简单,C没有类,C++的API函数常用的也有几千个,而嵌入式一般都是一些要求不是很高的产品,无需花费这么高的费用去用C++开发研究,而C++也可以编底层的程序,很多的驱动是用C++编的,总体来说,就是C++开发的产品应该是比较深的
softman11 2010-06-09
  • 打赏
  • 举报
回复
比如,如果资源更加宽松,实际上.net,Java一样可以搞嵌入式!!!
softman11 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 jamesf1982 的回复:]
今天去面试,是嵌入式岗位,但是和我之前的工作不同的是,这家公司嵌入式代码是用C++写的,我对C++的了解只停留于表面,因此C++较深层次的问题我都没能回答。我抱怨了一下,在嵌入式里大都用c开发,这时面试官问了一下,那你觉得为什么嵌入式里应该用c开发呢?c的优势在哪里呢?

突然间被问到,引起了我的思考,应该说用c开发的代码,我还想不出用c++开发不了的(感觉语法等等,C++都兼容了C)。那……
[/Quote]

很简单。
C的优势是程序小,速度快!C++接近,那还是C的快!这没说的!

C++的优势是开发更简单,系统比较的大的时候,C++协作更人性化一些。

至于嵌入式用C还是C++,完全看系统的大小。如果系统资源不多,需要更小,更快,那就C,如果这方面比较宽松,为了照顾开发更人性化,用C++ 也可以。
如果资源要求更严格,那就直接汇编!

其实没必要分的那么清楚,关键看需求!!!需求!!!
agaric 2010-06-09
  • 打赏
  • 举报
回复
真正掌握C的人,不是很多。不完全掌握C的人也可以完成工作,并且做的不错。
真正掌握C++的人,就更少了,不完全掌握C++的人,只能把工作搞的一团糟。

不是c++能力不行,而是我们能力不行驾驭不了,所以还是用C好了。
do_fork 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 64 楼 budongc 的回复:]

引用 60 楼 zhao4zhong1 的回复:
记不得哪位C++大牛在哪本学习C++的书的前言里面说过
“用C语言1000行源码能完成的工作千万不要用C++重写!”


上万行的程序都没有C的份吗?
[/Quote]

当然有,Linux内核,超过1000万行代码
cxxer 2010-06-09
  • 打赏
  • 举报
回复
C比C++简单,这谁都知道,因为C一个字符'C', 而C++三个字符'C','+','+'。
kerwinash 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 mikithebest 的回复:]

不知道为什么,我反复看C的代码文件和C++的代码文件,觉得C语言的还是好看(就是看起来漂亮)些。
[/Quote]
支持。
z569362161 2010-06-09
  • 打赏
  • 举报
回复
c是C++的一个子集。兼容性达到了%98

小老和尚,你最近忙什么呢?总是见不到。
加载更多回复(51)

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧