source insight解析命令行

  • 格式:docx
  • 大小:527.80 KB
  • 文档页数:3

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安装完SI后,会在安装一个如下的文件

我的文档\Source Insight\c.tom

c.tom的功能与C语言中的#define类似。打开这个文件,会看到有很多空格分割的字符串,SI在我们阅读代码时,自自动将空格前的字符串替换为空格后的字符串(仅仅是影响阅读,不影响编译喔)。

举两个例子。

#define AP_DECLARE(type) type

AP_DECLARE(int) ap_calc_scoreboard_size(void)

{

....

}

source insight 把AP_DECLARE当作了函数,当想查ap_calc_scoreboard_size的时候总是很麻烦,不能直接跳转.

我的文档\Source Insight\c.tom 加入

AP_DECLARE(type) type

如下的代码如何让SI 识别出f是一个函数?

#define EXPORT_CALL(return,functionname) return functionname

EXPORT_CALL (int, f1())

我的文档\Source Insight\c.tom 加入

EXPORT_CALL(return,functionname) return functionname

同时,在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接前后两个参数,把它们变成一个字符串。(c.tom的功能与支持##,不支持#好像)

这个技巧我在阅读zebra的命令行代码时也用到了。

比如下吗一段代码:(DEFUN是一个宏定义,这个文件中有很多这样的DEFUN。不修改c.tom 之前看到的是这样的)

在我的文档\Source Insight\c.tom的最后添加字符”DEFUN(A,B,C,D,E) A##_cmd( ”,重新打开工程,并同步,之后的效果(filter_set_cisio为界,注意最后要有个括号)

看到没,都编绿了。点击其中一个节点能直接跳转了。按快键F7,在symbol window也能看到这些函数,且能直接跳转对应的名字,比define好看多了。

我上面的代码都是zebra中的代码,在实际工作中,命令行的解析顺序可能与此不同,但可以类推的。

反复提醒:1.修改c.tom文件之后,一定要关闭再打开工程,并同步文件才能看到效果。不然要等下次你打开工程才能看到效果啊。SI也会自动同步,但比较慢。

2.c.tom一般都在SI的安装目录下,看你安装在那个盘。我的是d:\My Documents\Source Insight。