点击上方,选择“置顶/星标公众号”
大家好,我是麦鸽。
在单片机和嵌入式的相关开发的工作中,数据结构到底重要不重要呢?
我认为这很重要。
这里举个例子,在嵌入式系统中,我们经常会处理传感器或者一些设备上的数据,比如ADC,加速度传感器/陀螺仪传感器,或者记录数据的设备。
通常我们可以通过UART
,I2C
,SPI
等接口将数据读取到单片机内部。很多情况下,数据的更新频率很高,往往是微妙级别,或者是毫秒级别的。
这时候,我们就要将这些数据保存到数据结构中,如何高效的读写数据是一个问题,而在C语言中已经有相应的机制来保存数据。
比如C语言中常用的数组,结构体,联合体都是一种数据结构,再复杂一点的像队列,堆栈,链表,二叉树等等。
在何种情况下使用何种数据结构?这是个问题。
并且在一些开源项目的源码里,数据结构是很常见的,下面是FreeRTOS源码里的链表初始化的函数:
如何能掌握数据结构,能够轻松地读懂这些代码,这也是一个问题。
我以前是电子相关专业的,当初的数据结构是自学的,自认为也是半桶睡,因为当初学完C语言之后,并没有开设数据结构这门课程,大部分情况都是自己看视频,然后敲代码练习,才学会的。
数据结构比较抽象,所以,我们在写代码的时候会拿一支笔,画一下具体的实现过程,理清思路,然后再配合代码练习,就会好很多。
这里推荐一下郝斌老师的数据结构视频,感觉挺好,不妨试试。
因为数据结构在应用的时候,要基于某种语言去实现,比如C语言,所以我们C语言就要掌握的比较扎实,如果感觉哪个知识点掌握不到位,就要查漏补缺,重点练习。
下面推荐一个学习网站,我感觉挺不错的:https://visualgo.net/zh
这里有基本的一些数据结构的可视化练习,具体如下所示;
文章不长,希望能帮到你,后台回复【数据结构】,可以领取资料。
🫵兄弟们!一个人单打独斗确实能冲得挺快,但要想走得更远、更稳,还得靠一群志同道合的伙伴啊!
👊 麦鸽的知识星球现在已经聚集了一波人,大家都在这里互相学习、共同进步。
如果你也想找个靠谱的学习圈子,赶紧 戳链接 🔗加入我们吧!
在这里,你能读到星球专栏的干货,优质教程,练手项目,随时向麦鸽提问,还能帮你定制学习计划。别犹豫,兄弟,一起冲!💪
往期推荐
嵌入式开发常用的Ring Buffer,今天一篇文章讲透它
推荐一个开源大功率伺服驱动器项目
为什么代码总在"不可能出错"的地方崩溃?嵌入式程序测试黄金法则
嵌入式C语言防御性编程必知的15个黄金法则,让你的代码稳如磐石!