嵌入式工程师为何不用学习C++语言?

2024-11-28 10:09:16
推荐回答(3个)
回答1:

一般嵌入式开发使用的芯片都比较小巧,不适合运行C++代码,不是说不能用,而是C++代码同样的程序实际是比C要多的。。。。C++是面向对象的,成员函数的工作原理和普通函数不太一样,他的成员变量寻址全是偏移地址+基址。。。也就是基地址加偏址,通过改变基地址,让函数操作不同对象,但偏地址都相同(这样相同的代码实现操作不同的对象成员变量),电脑的CPU是有支持基址加偏址的,在BX里存基地址,在SI里存偏址,一条指令就找到变量了。。。。而嵌入式芯片寻址要么立即数寻址,要么寄存器寻址,通常没有偏址+基址的方式,如果要实现只能软件去偏址+基址,运行更慢,何必那。。。
C++的面向对象,在继承类的同是也继承了很多累赘,对于C语言你不用的函数如果不调用,他就不会编译进程序,而类不同,就算你只用类中的一个成员函数,不幸的是所有成员函数也必须进程序,这对于电脑无所谓,但对于嵌入式有限的空间,很致命。。。还有一个重要原因是,嵌入式开发通常缺乏C++的类库,C++通常是在有丰富类库工具的情况下采用,比如
MFC,有大量的现成的库可用,从桌面绘图,声音控制,到网络传输,都有现成的类库可用。。。如果什么工具都没有,用C++意义就没多大,面向对象的前提也是要有足够多的对象,什么也没有,面向什么????

回答2:

这个得看你要搞哪一类的嵌入式了
说明搞得东西不够高端大气上档次......(Arm+linux+驱动 的除外) 、

嵌入式工程师分好多种 有一种是 ARM+Linux+Qt+C++ 给Arm+Linux平台写 窗口应用软件 这就需要C++(这个算是嵌入式软件工程师)
(当然不一定是ARM构架的处理器的也可能是其他构架的处理器比如powpc处理器,操作系统也可能是其他的比如VxWorks)
有种嵌入式 是 某些高级的单片机/DSP 可以用C++ ,据说Silicon Labs的C8051F和DSP就支持用C++了
有种嵌入式的 用FPGA + Verilog\VHDL
最低端的就是单片机了....你确定 你老板不需要你写给单片机的“上位机”软件......当然不一定用C++、C#\VB.net\Delphi\LabView\LabWindowsCVI……都可以写上位机......

回答3:

嵌入式程序设计语言要求可移植性高,C比C++可移植性好得多。像单片机程序设计大都用的C,或者汇编,不会使用C++。C++是面向对象的语言,适合设计应用程序。