单片机为什么不用C++语言编程呢?
本人学过C++,一般情况而言,C++比C有更多的优势,融合了更多的功能,实现上也较为方便,基本上都有取而代之的感觉,但为什么偏偏在单片机这里却选择了主流C编程,当然也用汇...
本人学过C++,一般情况而言,C++比C有更多的优势,融合了更多的功能,实现上也较为方便,基本上都有取而代之的感觉,但为什么偏偏在单片机这里却选择了主流C编程,当然也用汇编,这是另外一回事,我是说用C语言的话。
单从C++和C语言角度我们来考虑,也就是不考虑硬件的条件下,那么我们厂家开发这种专属于编绎单片机C++的编绎器,虽然有难度,但站在C++的立场来说,这样的成本是否值得呢? 展开
单从C++和C语言角度我们来考虑,也就是不考虑硬件的条件下,那么我们厂家开发这种专属于编绎单片机C++的编绎器,虽然有难度,但站在C++的立场来说,这样的成本是否值得呢? 展开
4个回答
展开全部
你的想法确实是正确的,但是单片机是跟硬件底层接触的,C比C++更加好,并不是说它功能多,实现方便就可以的。而是要考虑很多因素。
1楼说的看起来是正确的,但是实际是不正确的。像那种真正的高手,虽然对其它语言会有一定的排斥性(这是正常的),但是如果他们真的想转另一门语言并不会难。风险是一定要考虑的,就好像你买汽车,如果这辆汽车是有风险的,你会去买吗?C++在PC领域跟C可以说都差不多吧。因为PC的配置比单片机好很多。可以想一下,为什么过去那么多年了,C++为什么没有取代C,而C为什么又没有取代汇编呢?C++出现了那么多年了,肯定有厂家试过用C++去开发单片机的,对厂家来说,如果C++真的比C在单片机领域更好,肯定会去换,但是为什么却没有听到谁去推广呢?
2楼说的就不错。
C++就是因为它的功能太强大了,所以有很多特性在单片机上是实现不了的。
最重要的还是效率使然,虽然在电脑上C++和C的执行效率是有区别的,单片机的硬件资源有限,当然会选用执行效率最好的。如果C++的效率跟C真的一样了,那就不一样了。
每门语言使用的方向都不一样。正如有位仁兄说的“如果你的电脑内存只有128字节,你去用C++试试会怎样”。
没有可能不考虑硬件的,如果不考虑硬件,那怎么写编译器。
1楼说的看起来是正确的,但是实际是不正确的。像那种真正的高手,虽然对其它语言会有一定的排斥性(这是正常的),但是如果他们真的想转另一门语言并不会难。风险是一定要考虑的,就好像你买汽车,如果这辆汽车是有风险的,你会去买吗?C++在PC领域跟C可以说都差不多吧。因为PC的配置比单片机好很多。可以想一下,为什么过去那么多年了,C++为什么没有取代C,而C为什么又没有取代汇编呢?C++出现了那么多年了,肯定有厂家试过用C++去开发单片机的,对厂家来说,如果C++真的比C在单片机领域更好,肯定会去换,但是为什么却没有听到谁去推广呢?
2楼说的就不错。
C++就是因为它的功能太强大了,所以有很多特性在单片机上是实现不了的。
最重要的还是效率使然,虽然在电脑上C++和C的执行效率是有区别的,单片机的硬件资源有限,当然会选用执行效率最好的。如果C++的效率跟C真的一样了,那就不一样了。
每门语言使用的方向都不一样。正如有位仁兄说的“如果你的电脑内存只有128字节,你去用C++试试会怎样”。
没有可能不考虑硬件的,如果不考虑硬件,那怎么写编译器。
追问
其实比较认可你的说法,“如果你的电脑只有128字节,你去用C++试试会怎样”,说得精彩,其实我感觉主要还是从单片机自身的条件来讲的,但是假如我想用C++通过单片机来实现更加复杂的功能,而又假设这时用C++比C有更多的比较明显的优势时的话,呵呵,是不是不切实际呢,兄台
追答
呵呵,这些要看厂家的了,我们决定不了这些。最少在现在来说很多是不可能的了,但是将来谁知道呢
展开全部
单片机主要跟硬件打交道,用的不是通用编译器,而是单片机专用编译器,
这个编译器本身是要厂家开发的,越简单越易开发这个编译器,这个编译器侧
重点是单片机。
而C++是面向对象的,你虽用起来方便,但开发这个C++专用编译器就麻烦了,
面向对象对单片机来说是毫无用途,从实用角度讲首选C,而不是C++了。这
是站在厂家的立场上说的。
这个编译器本身是要厂家开发的,越简单越易开发这个编译器,这个编译器侧
重点是单片机。
而C++是面向对象的,你虽用起来方便,但开发这个C++专用编译器就麻烦了,
面向对象对单片机来说是毫无用途,从实用角度讲首选C,而不是C++了。这
是站在厂家的立场上说的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎么说呢,这看什么应用场合了。高端的ARM 、DSP、FPGA也是可以当单片机用的,这是一个成本的问题,在高端应用上很多用C++毕竟他有很多好处,但在一般的小系统应用上C++的优势体现不出来,会产生更多的代码,主要是他太严谨了,如果他的编译器和C产生了一样的代码了那他的严谨性或许就体现不出来了。个人如此理解了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实主要就是10年前大家在用C开发单片机程序,有一帮老人,他们对C,对系统很熟悉,对C++只是略懂一点,于是就不愿意切换。总是说:换成C++那么大的风险谁来承担?类似的,C++的创始人BS说过:这纯属是人们的一种固执的守旧观念
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询