sourceinsight无法跳转函数_使用SourceInsight的三大理由,最后一点是关键!
工作后不久,就听组长说鱼鹰的前任同事使用SourceInsight编写代码,而使用KEIL编译。鱼鹰无法理解,为什么KEIL明明可以编辑代码,为什么还要另一个工具软件呢?
直到初步尝试后才发现看代码确实挺方便的,但这点好处说实话很多工具都具备,还不足以让鱼鹰专门为它写一章(前段时间鱼鹰写了一篇《介绍几款好用的工具 | 嵌入式必备》,其中就介绍了它),直到最近,鱼鹰才发现了这个软件的强大之处,所以鱼鹰才忍不住想写一写,分享给各位道友,而最近又有几个也忍不住想写的点:
《还是没忍住,聊聊无锁队列吧》
《KEIL 下如何准确测量代码执行时间?》
记得关注鱼鹰哦!
现在继续说回SI吧,这个网上评价很高,如果要问哪一款软件的代码编辑最强大,这个众说纷纭,但是要问哪款软件看代码最爽,无疑是SI了。
那么凭什么?
现在鱼鹰就说说使用这款软件的三大理由:
一
创建工程简单至极!
我们知道,当我们使用KEIL的时候,如果想看代码,只能用KEIL打开工程,才能找到你想要的代码。同理,IAR亦是如此。
有一天,常用KEIL的你,为了一个功能,从网上下载了一份参考代码,但是不好意思,这个参考代码是使用 IAR 建立的工程。为了看这份代码,查看函数之间的调用关系,变量声明的位置,你不得不安装一个IAR,然后编译(可能还需要PJ才能正常使用),当你折腾完之后,你研究代码的兴趣应该耗完了吧!
那么是否有简单的方法,跳过IAR,直接看源码呢?有的,那就是SI。
这篇笔记不是基础教程,就不教你如何新建一个SI工程了,不然篇幅太长,重点就没了。
总之,使用SI查看代码只需要两步,第一,新建工程,第二,同步,这个同步会将函数调用等信息都检索出来,方便查看代码,就像KEIL的这个功能:
而且同步速度也是很快的。
特别注意的一点就是,每次修改完代码之后如果要查看代码都得同步一下(可能有自动同步功能,但目前鱼鹰没用),否则有些代码信息可能不能及时反映,还有新建工程时不要有中文路径,切记!
对了,KEIL和SI是可以同时打开同一个工程的,如果你有双屏(这个程序员必备吧,哈哈),那感觉很爽!
只是刚开始使用SI时,因为字体大小不一,可能会不太习惯,但是看着看着就习惯了。如果实在不习惯,这个也是可以设置的,具体上网搜就是了。
二
这个优势在鱼鹰的一篇笔记中介绍过了,就是在查看函数定义的时候特别方便。鱼鹰现在用上次的参考代码直接新建一个SI工程看看效果好了。
可看到当你的光标指向一个函数时,有一个窗口自动就会把这个函数的实现展示出来,这样就不需要像KEIL一样按F12才能跳转查看了,特别方便。
还有一个功能,你可以使用高亮功能使某一个函数名或变量名高亮:
当你光标选中一个名词,右击即可出现一个菜单栏,选择Highligth Word选项,这个也有一个快捷键,也可以重新设置快捷键,随你喜好了(这个功能是对整个工程代码而言的)。
这个功能有个替代功能,就是直接选择一个名词后,它会自动把本文件相同的名词进行高亮,就不需要自己手动设置高亮了。
怎么设置呢?选择【File Type Options…】然后再弹出菜单进行选择即可。
三
最重要的一点来了,也是为啥选择SI查看代码最重要的理由。
使用KEIL时,如果我们需要查看一个函数在哪里被调用了,常规做法就是全工程进行搜索,但是有时候刚好你搜索的函数名在工程有很多地方是有同名的,那么你不得不停下来判断你找到的函数是不是你需要的,这样一来,不仅可能出现人为判断错误,还严重影响了工作效率,特别是当你需要在这个函数的前后加入一些代码时,更是让人修改起来头大。
如果有一个代码查看工具,可以把所有的函数、结构体成员、变量调用情况都清晰的展示出来,那该多好!
有的,就是SI。
现在看看如何查看size这个结构体成员变量的调用情况的?
看到没有,右边窗口把所有关于size调用的地方都显示出来了,因为它是实时根据光标内容更新的,所以为了防止查看其它代码的时候被更新了,可以通过锁定开关达到锁定的效果,如果你突然想看别的成员变量,那么重新使用旁边的刷新按钮即可刷新啦,简单方便。
到此重点结束,现在说说关于SI的其他点。
我们看代码时可以看到有些代码颜色各异,但都是彩色的,这是因为SI已经能够识别这些代码,但有些SI识别不了的,可能就黑色了(这种情况下无法查看调用)。
比如鱼鹰增加一个返回指针的函数指针,可以看到这个变量是黑色的,说明SI无法识别这个变量。
但是你用typedef重新声明后再加入到结构体里就能识别了,看,它变色了!
而当函数参数不一样,而函数名一样时,它会很智能的选择正确的那一个函数
这种智能有时也会带来一点麻烦,比如你要修改一个现有函数,本来一个参数的,修改成两个参数,有的时候修改了一半,有些函数改了,有些函数没改,那么当你查看有两个参数的函数的调用情况时,就会发现你全部都修改了,但实际情况是还有一半没有修改过来呢!
所以这个特性需要引起注意。
好了,更多关于SI的使用方法就自己去发现吧,总之用了它你绝不会后悔就是了,鱼鹰也特别希望各位道友能用上这款神器。
sourceinsight无法跳转函数_使用SourceInsight的三大理由,最后一点是关键!相关推荐
- python unique函数_《Python编程从入门到实践》json数据可视化练习详解
<Python编程从入门到实践>16.2中,计算收盘价均值的程序有些不易看懂,结合我自己的理解进行一些说明. 使用的数据集:join格式的数据, 数据集是由多个字典为元素组成的列表.每个字 ...
- django-url的分发, 2)起别名, 3)根目录,4)rediect跳转函数:
1)url的分发: 1,首先在全局的url里面的路径中写好,你要分发的路径名.2,并且在你要分发的路径下,创好新的url文件. 在分发的路径名里面,把全局url里面的代码,复制过来3,最后在浏览器打开 ...
- PurgeComm()函数_清空缓冲区 收藏
PurgeComm()函数_清空缓冲区 收藏 该函数原型: BOOL PurgeComm(HANDLE hFile,DWORD dwFlags ) HANDLE hFile //串口句柄 ...
- linux uname内核,Linux下confstr与uname函数_获取C库与内核信息
Linux下confstr与uname函数_获取C库与内核信息 #include #include //uname int main(int argc, char **argv[]) { struc ...
- c语言程序 中断函数示例,单片机_C语言函数_中断函数(中断服务程序)
c语言中的中断函数注意事项 单片机_C语言函数_中断函数(中断服务程序) 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统. 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该 ...
- VScode无法跳转函数/no definition found for xxx
系统:windows 10 问题:本来根据教程配好了的,一直都能正常跳转,结果今天突然就无法跳转函数了,Ctrl+左键和F12全部失效 尝试过的解决方案:1.安装删除C\C++ 1.5.1,C++ I ...
- 【九】Python全栈之路--文件函数_函数参数
文章目录 1. 文件相关函数 2. 函数_函数的参数 2.1 函数 2.2 函数的参数 3. 收集参数 4. 命名关键字_总结 4. 小练习 1. 文件相关函数 # ### 刷新缓冲区 "& ...
- subtotal函数_星期五的Excel函数:将总计为SUBTOTAL的筛选列表
subtotal函数 The Excel SUM function does a great job of adding numbers on a worksheet, and it's probab ...
- python中的goto函数_如何在 Python 中实现 goto 语句
Python 默认是没有 goto 语句的,但是有一个第三方库支持在 Python 里面实现类似于 比如在下面这个例子里, from goto import with_goto @with_goto ...
最新文章
- 编写自己的Shell解释器-3[转]
- TortoiseSVN新人使用指南
- centos7安装uwsgi报错_如何将CentOS 7升级到CentOS 8
- 爬取虎扑NBA首页主干道推荐贴的一只小爬虫,日常爬不冷笑话解闷
- 发现一个木马,竟然偷传我珍藏几十G的视频!
- 通过IHttpHandler实现图片验证码
- 利用Zabbix ODBC monitoring监控MySQL
- ​《麻省理工科技评论》选出2019年全球十大突破性技术
- (三)比特币时间序列数据的AI异常检测
- rcs开机启动mysql_linux添加开机自启动脚本示例详解-阿里云开发者社区
- “The Stupidity Paradox”作者访谈
- 从此,我就踏入IT行业拉
- python爬虫JS逆向之人口流动态势大数据
- python装饰器-简易版
- 跨浏览器(IE/FF/OPERA)JS代码小结
- unity中连接MySQL数据库的方法封装
- 【C语言】排序详解——冒泡排序
- 转载:机器人工程师学习计划(YY硕)
- SSM项目之短信验证码登录
- 2021.11.17 关于一元二次方程组求根