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

一般嵌入式开发使用的芯片都比较小巧,不适合运行C++代码,不是说不能用,而是C++代码同样的程序实际是比C要多的。

C++是面向对象的,成员函数的工作原理和普通函数不太一样,他的成员变量寻址全是偏移地址+基址。

也就是基地址加偏址,通过改变基地址,让函数操作不同对象,但偏地址都相同(这样相同的代码实现操作不同的对象成员变量),电脑的CPU是有支持基址加偏址的,在BX里存基地址,在SI里存偏址,一条指令就找到变量了。

而嵌入式芯片寻址要么立即数寻址,要么寄存器寻址,通常没有偏址+基址的方式,如果要实现只能软件去偏址+基址,运行更慢。

参考链接:
https://zhidao.baidu.com/question/751721393732512084.html

原文地址:https://www.cnblogs.com/chendeqiang/p/13321120.html