在微控制器领域,由于历史原因和工业需求,C++无法成为主要流行语言。 微控制器从1951年开始发展,直到现在,主流闪存容量仍在64KB~256KB左右。 能力的限制注定了C++中的模板、泛型编程和STL在产品开发中几乎不会被使用。 如果只能用支持类的C++的话,并没有明显的效果,因为在C语言中,有结构体+函数指针可以替代。 用C++替代C的意义并不是很大,Python和js的推广也相对困难,同样的原因,除了调试难度之外。 然而对于rust来说,这些困难并不存在,但也是无用的,因为目前行业内大大小小的公司都有大量使用C语言开发的产品。 如果你想用生锈的东西来代替它们,你将需要承担太多的额外费用。 语言本身并没有什么问题。
很多用户认为Rust语言水平优于C语言,因此Rust爱好者需要为主流厂商平台提供更多的开源项目,而不是呼吁语法水平精益求精。 另外,单片机的优势不仅在于实时可控性,更重要的是价格低廉。 对于出货量数十万甚至数百万的设备来说,任何一点点的节省都会变成一笔可观的收入,所以业界希望是以最小的成本做最多的事情。 从这个角度来看,C相对于C++、python、js来说优势明显。
在嵌入式Linux领域,C++绝对是应用层的主要玩家之一。 虽然QT/C++由于芯片性能的提升逐渐被Android/Java取代,但在医疗、工控、车载导航等领域仍然拥有自己的一席之地。 这些领域是 C++ 最常用的地方。 都说嵌入式比较难,C++也很难。 所以说嵌入式人很少学C++是一种非常片面、客观的印象。 另外,C++的难点在于移动语义和模板。 ization、lambda、模板元编程等知识,以及各种C++语法的结合技巧,如果不花大量时间研究的话,它就像一本圣经。
这个问题先分享到这里。 想要进群学习单片机编程的同学可以私信我,回复“我要入门”,与我们一起成长。 喜欢的话可以点赞关注我们哦! 但对于工业界,尤其是嵌入式应用,只使用STL封装的向量、图和算法来方便开发,并封装一些模板函数或类以帮助复用。 很多时候C++11的新特性并没有得到充分的利用。 ,说难有点夸张。 业界的难点始终是如何将产品需求转化为具体的任务分解(满足性能、成本和功能的平衡,同时实现长期稳定性),而不是用哪种语言来实现任务。 当需求针对任何语言时,无论是python、js、C++还是java,面向薪资的编程,只要有需求,总会有人向这个方向迈进。 困难不是问题,需求和薪资才是问题。