打印
[AVR单片机]

我是C++的爱好者,但反对单片机系统用C++

[复制链接]
25498|86
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
疯子8972|  楼主 | 2010-8-19 12:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先表明,我是C++的爱好者
本人很喜欢C++,大学学的就是C++,
觉得很有趣,当时还买了本国外译本的《C++大学教程》翻阅了好几遍
研究生时无聊,又有事没事去看号称经典的《C++程序设计语言》
此书作者是C++之父,翻译也很用心
当时厚厚的笔记啊。。。。

C++作为一门计算机语言来说,几乎可以说没法挑剔了
面向对象与效率统一,语法严谨,博大精深

我觉得它的缺点是他太优秀了
以至于C++老手写的程序就是在“炫技”

优秀和复杂的特性带来的是理解上的错误和使用上的问题
虚类,匿名类,成员函数重载,多态,运算符重载,友元,模板
这些都是比较深入的问题

举个例子   printf()大家一看就明白,调用函数,打印
C++中呢 ,cout <<
怎么解释cout是什么,是输入输出流类的对象,<<是什么,是一个运算符的重载。

解释清楚了么  没有    这个鸟流类是什么,重载是什么,为什么能打印出字来
问题太多了

C++太复杂,特别是在利用其高级特性编写程序时
C++是松散语言,即用它编写程序时,必须手边有一本语言手册,不然就会忘记高级特性具体是怎么用的

而C,简单,没有高级特性,语法简单,方便**,上手半年左右基本不用再翻书了。

C++是牛刀,单片机是只**。
C++这个语言太牛X了,以至于在电脑编程中都逐渐变得爹不疼娘不爱了。
谁让它太牛X太复杂了呢
评论
daily媛媛 2019-1-8 17:24 回复TA
c++在西安这边就业机会多吗?一般都是初级好就业,还是中高级的尼? 
icecut 2013-2-24 21:11 回复TA
现在.net的框架都有单片机的版本了.你仅仅是爱好者,再说单片机程序也不大.但是,除了单片机支持new不好意外,无任何缺点.只不过写单片机的人不懂c++ 
评分
参与人数 1威望 +1 收起 理由
xuyiyi + 1

相关帖子

沙发
murex| | 2010-8-19 12:56 | 只看该作者
;P

使用特权

评论回复
板凳
hotpower| | 2010-8-19 13:04 | 只看该作者
裤子一条。
实际上,现在的单片机的含义已经发生巨变,早已和为区分单板机而称之为“单片机”的时代面目全非。
速度、容量更是今非昔比。
pc机也经历过速度和容量小的时代,可它的语言体系却发生了翻天覆地的变化。
难道嵌入式领域还要继续守旧吗?

使用特权

评论回复
地板
xuyiyi| | 2010-8-19 13:26 | 只看该作者
哈哈!

一般来讲,绝顶高手都是怪才,怪才都有个怪名,比如“疯子”,“傻子”“菜农”。。。。。

请继续PK。俺们听课。

使用特权

评论回复
5
疯子8972|  楼主 | 2010-8-19 13:29 | 只看该作者
C++的部分特性的确十分诱人
但是,要实现完整的C++特性是非常难的
这对于编译器和单片机系统都是挑战

以下摘自网络上的一段描述
1998年国际标准组织(ISO)颁布了C++程序设计语言的国际标准ISO/IEC 14882-1998。现在新的标准正在制定中。遗憾的是,由于C++语言过于复杂,以及他经历了长年的演变,直到现在(2004年)只有少数几个编译器完全符合这个标准(这么说也是不完全正确的,事实上,至今为止没有任何一款编译器完全支持ISO C++)。
我来举例:
比如运行时态对象的类型判断
虚函数实现运行时态的多态性机能开销对单片机这样的“细胳膊细腿”是非常巨大的,不信大家可以试试

C++是高级语言设计的范本,所以很早就被ISO了,就算它不流行,它也绝对有资格被ISO

我个人以为,嵌入式系统至少要上WIN或者LIN,在完成较大项目时,C++才能作为良好的工具。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xuyiyi + 1
6
mxh0506| | 2010-8-19 14:29 | 只看该作者
本帖最后由 mxh0506 于 2010-8-19 14:33 编辑

:D

使用特权

评论回复
7
hotpower| | 2010-8-19 15:01 | 只看该作者
正如楼主所述嵌入式领域中完全符合标准的c  编译器几乎没有。
有的甚至连string类都没有,必须自己构建和符号重载。
虚函数实际就是c com接口技术,通俗讲就是结构 函数指针。
从函数调用的角度考虑函数指针的调用显然效率低下。
com接口技术起源于动态链接库的迅猛增长,同理嵌入式系统下的api函数的管理和命名也是头痛的事情。
记得c com阵营痛骂c  是垃圾语言,其他语言骂c/c  的指针。
这都是所处的位置和立场的不同造成的。
俺认为c com才是c的发展之道。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xuyiyi + 1
8
xuyiyi| | 2010-8-19 15:27 | 只看该作者
哈哈!

大叔吹的累了,总算露了点底,c com才是皇道,c今后的发展方向! :lol

使用特权

评论回复
9
hotpower| | 2010-8-19 15:33 | 只看该作者
晕!手机敲字太慢。
不知为何不认“+”号。
c++,c+com

使用特权

评论回复
10
粉丝| | 2010-8-19 15:48 | 只看该作者
某些人从BASIC,DEPHI,一路走过来,到最后,总算有能力把C++学到手了。就鼓吹无C++不欢。
让51用C++,PIC用C++,AVR用C++ 。。。。。全世界就只有他懂C++。NB啊!

使用特权

评论回复
11
hotpower| | 2010-8-19 16:12 | 只看该作者
可惜用不成java,c#,更用不成python和ruby。
世界在进步,没人再想回到只有汇编的年代!
历史的车轮不会停留…

使用特权

评论回复
12
潜艇8421| | 2010-8-19 16:18 | 只看该作者
祸害下一代,老顽童一定会成为历史的罪人。

使用特权

评论回复
13
xuyiyi| | 2010-8-19 16:28 | 只看该作者
世界在进步,没人再想回到只有汇编的年代!
历史的车轮不会停留…
hotpower 发表于 2010-8-19 16:12


应该说,世界在进步,越来越限制了汇编的使用,将来的汇编只掌握在少数精英手中!

比如ARM,厂商不推荐用汇编而推荐直接用C,但设计C编译器的个个是汇编高手,否则将无法编写出一个优秀的C编译器出来!

使用特权

评论回复
14
hotpower| | 2010-8-19 16:43 | 只看该作者
面向对象是目前计算机语言的潮流。
类是它们的根基。
封装、继承和重载那个不比c眼光长远?

使用特权

评论回复
15
疯子8972|  楼主 | 2010-8-19 17:14 | 只看该作者
所谓站得更高 看得更远
我认为C++不适合单片机,不代表C++的思想不适合单片机
C++的思想,特别是一些高级的特性正是很多嵌入式工作者欠缺的
面向对象的思想,继承重载,这些都很好

但是有些开销太大,比如运行时多态
用来学习,研究不错
用其作为开发工具进行单片机开发,还是那句   杀**用了牛刀

使用特权

评论回复
16
疯子8972|  楼主 | 2010-8-19 17:17 | 只看该作者
计算机行业的水就太深了
很多结果是利益驱动
流行的不一定是好的
我一直认为C与C++是程序员的正道
并且是一个严谨且略带偏执的程序员
虽然现在用C++的人越来越少了

使用特权

评论回复
17
hotpower| | 2010-8-19 17:54 | 只看该作者
c与c++之争就如同早期的汇编与c之争,前者永占上风,这是不争的事实。
当编译器的编译技术大飞跃时,这些都将成为过眼云烟…

使用特权

评论回复
18
疯子8972|  楼主 | 2010-8-19 21:09 | 只看该作者
C++是技术派喜欢的东西
如果是项目很适合用面向对象方法解决,并且机能允许,我也会用C++开发
单片机就算了吧
能用个嵌入式操作系统我已经谢谢它八辈祖宗了
高档语言还是免了吧
:)

使用特权

评论回复
19
HWM| | 2010-8-19 21:33 | 只看该作者
C++只是C的一个超集,++之意下一步也。不想下一步,止步即可,没什么大惊小怪的。不过固步自封不是什么好的东东。

使用特权

评论回复
20
hotpower| | 2010-8-19 21:40 | 只看该作者
这一步太大了…

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

576

帖子

37

粉丝