嵌入式为何钟爱SourceInsight,主要因为这个功能~

552277ba9dbd6cd3c672c316a06e3bbd.gif

正文


大家周末好呀,我是bug菌~

1

函数

不管是玩单片机还是嵌入式linux,只要是与硬件结合比较紧密的部分目前基本上还是C语言,当然了,不知道以后C语言会不会被取代,即便哪天被某种更加优秀的语言取代,对于大部分使用者而言也仅仅只是语法发生一些变化而已。

更何况目前C语言渗透到嵌入式行业的各个角落,即使编程语言需要替代也是一个渐变的过程。

想必大家在入门C语言的时候,一定会碰到这样的问题:"C语言程序的基本组成单位是什么?",如果你没坚定的回答上来,那得怀疑一下自己的C语言功底了。

没错,C语言程序是由函数构成的,函数是C程序的基本组成单位。这句话很简单,但是也同样太值得深入思考了,为什么不是变量、也不是执行顺序呢?

在bug菌往期的一些文章中,其实隐隐约约有提到过一些,只要你把函数名称规范好、函数封装有理有据,基本上不需要写太多的注释,函数的名称就是最好的“文档”说明,而要读懂这篇“文档”无非就是要理顺函数之间的调用关系。

2

调用关系

没错,理顺函数之间的调用关系确实是你理解C语言程序、了解其代码原理和实现过程的关键,特别是一些大型工程代码,几乎不可能留给你足够的时间一句一句的参悟,更何况很多算法和处理策略都是比较成熟的实现,没必要重复的、花大量的时间去理解,当然了,如果你是针对性的学习和优化那就另当别论了。

对于理顺函数之间的调用关系不同的人有不同的方式方法,比如一个函数一个函数的粗略阅读,然后单独拧出相关函数进行记录和整理,最后变成流程图或者结构图等等。

也有朋友通过直接在函数内部添加打印函数,程序一旦运行就可以在相应的打印窗口列出函数之间的调用层次关系。

当然还有非常多的方法,每种方法有优劣,但从效率方面考虑还是让软件根据我们的需求自动识别函数调用关系,并以一种更加形象直观的方式呈现给我们来使用和理解。

对于目前在嵌入式软件中比较优秀的编辑器都有着查看函数调用关系的功能或者插件,bug菌用得比较多的还是Souceinsight的Relation Window窗口,你可能会问了为什么喜欢用SI?简洁、方便,能够满足我平时的阅码需求。

3

SI的Relation Window

那么这里就根据我平时的使用,简单聊一聊SI这块的功能。

SourceInsight的符号关系功能展示在如下位置打开:

67fd7d27ab5fc6b62c457dbf6847ecb2.png

这里简单的编写了一个函数调用关系,来看看关系窗口的展示:

959c7bd79135b68d18fff6aaa2881e2e.png

可以看出函数调用关系已经为我们完整的展示。

并且可以通过点击左下角相关设置来改变函数调用关系的样式,SI的关系窗口主要是两种类型的视图:outline大纲视图和图形视图,前面我们展示了大纲视图,如下是另外两种图形视图展示:

f7175672536ebb3d88c7981722790b04.png

80442f2fd9e67d272ab0de7bb683d7e2.png

有这功能在手,理解程序的速度不知道加快多少倍?

当然了再好的功能也需要使用者多熟悉,并勤加练习,不仅如此有时候我们需要了解更多的符号信息或者筛选出我们想要了解的关系,那么这些配置项目都可以在关系窗口的配置中供我们使用。

7a992ee4ce6f1721475e70adf651762d.png

比如是否需要对符号进行自动跟踪的设置,对函数调用展开到第几层,对于关系视图中那些类型的符号可以过滤或者展示等等都可以根据你所要展示的效果进行设置,以便我们剔除掉一些不需要关注的符号关系信息,更加直观的分析整个工程的全貌。

最后

      好了,今天就跟大家分享这么多了,如果你觉得有所收获,一定记得点个~

最后一个bug,bug菌唯一创作平台~

f9f7d262e8b807db864f444934f4bf36.jpeg

推荐专辑  点击蓝色字体即可跳转

☞  MCU进阶专辑 8ebcd936b9acfc51b04dc04e3ae55e06.gif

☞  嵌入式C语言进阶专辑 6b12964266b0c39b130042f7df007dda.gif

☞  “bug说”专辑 63308a894b23add2241580dcafb2eae7.gif

☞ 专辑|Linux应用程序编程大全

☞ 专辑|学点网络知识

☞ 专辑|手撕C语言

☞ 专辑|手撕C++语言

☞ 专辑|经验分享

☞ 专辑|电能控制技术

☞ 专辑 | 从单片机到Linux

29a4808cafec88ccc38506afa44c0f94.gif

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值