为什么主流的 MCU 开发语言是 C 而不是 C++?

主流的MCU开发用C而不是C++,核心原因是“够用且省事”,具体可以从以下几点理解:

  1. 资源限制
    MCU的内存和存储空间通常只有几KB到几百KB,C语言生成的代码更精简,运行时占用资源少。
    C++的虚函数、异常处理等高级特性会增加额外开销,即使能通过编译器选项关闭,但默认情况下C更省心。

  2. 开发习惯
    传统MCU工程师多为电子、自动化等非计算机专业出身,C的语法简单直观,学习成本低。
    很多项目规模小(比如一两人开发),用C的全局变量和函数就能搞定,没必要引入C++的类、模板等复杂概念。

  3. 工具链支持
    厂商提供的SDK、驱动库基本都是C写的,用C能直接调用,省去适配C++的麻烦。
    部分老旧MCU的编译器甚至不支持C++,或者支持得很差(比如某些51内核芯片)。

  4. 实时性要求
    C代码的执行时间更容易预测,适合对时序敏感的嵌入式场景(比如电机控制)。
    C++的动态特性(如多态)可能引入不确定性,调试起来更头疼。

  5. 历史惯性
    早期MCU性能极弱,只能用C或汇编,积累了大量C生态(代码、教材、工程师经验)。
    即使现在MCU性能提升,但“够用就不改”的心态让C仍是主流选择。


例外情况

  • 复杂项目(比如带GUI或多任务)可能会用C++,比如Arduino和mbed框架。
  • 大厂(如华为、大疆)在大型嵌入式系统中倾向于C++,因为代码复用和可维护性更重要。
  • 但这类项目在MCU领域占比小,大部分还是“点亮LED+读传感器”的简单需求,C依然是最优解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值