大多数单片机程序采用全局变量的形式是为什么呢?

473 篇文章 2 订阅
77 篇文章 0 订阅

内存占用的可预测性:在单片机程序中,可预测的内存占用是很重要的因素。静态分配可以在编译过程中确定所需的内存,并且分配过程在程序启动之前就已完成。这使得静态分配成为单片机程序的理想选择。

栈空间的限制和风险:栈分配具有一定的动态性,但整体内存占用不易预测。单片机程序通常将栈大小设置较小,以避免栈溢出的风险。栈分配相对于动态分配的优势在于,栈空间的申请和释放非常简单,因此仍然是可以接受的选择。

动态内存分配的不适用性:动态内存分配对于单片机来说并不太适合。在单片机环境中,动态内存分配通常是缓慢且复杂的,需要额外的数据结构来记录已分配的内存,并在释放时进行适当的处理。因此,大多数单片机程序开发避免使用动态内存分配。

另外,使用全局变量还有一个小技巧是优化返回值。默认情况下,返回值放在栈空间中,这在多层函数调用时会产生赋值的时间浪费。而使用全局变量可以避免这些时间开销。

总的来说,在单片机程序开发中,大量使用全局变量是由于环境和资源限制所做出的选择。而在正常的计算机程序开发中,当没有严格的资源限制时,更倾向于更好的可复用性和模块化设计。


刚好我整理了一套嵌入式学习方向,其中技巧和干货简直满满,里面包含了编程教学、问题视频讲解、毕设800套和语言类教学,只需要回复个6,免费发给你,一条龙服务让你毫无顾虑好好学习fe9bbb37f5773a1bc59c8f0bbb33d812.jpeg

06ce1b976257dc1f7afd8f11fb223cfe.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值