参考:
Source Insight 导入项目
Source Insight 入门教程
Source Insight 4.0 的基本使用方法
C 语言中 .h 和 .c 文件解析
C 程序怎样组织更有结构性
C 语言头文件组织与包含原则
分析源代码及其结构,下载安装使用源代码静态分析工具 Source Insight。
以分析 Nginx 源代码为例,先 clone 源代码。
了解 Nginx 项目目录结构:
1 | . |
- 注:C 的文件组织
- 一般都在头件中进行宏、类型(typedef、struct、union、menu)、数据和函数的声明;而在 C 文件中去进行变量定义,函数实现。或头文件只向外提供接口。
- 需要注意的是 C++ 与 C 语言的多文件并不相同,c++ 头文件中一般放的是类的定义。
- 避免重复定义,开头加上:双下划线多用于警告提示。
1
2#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_
Source Insight 添加其它功能窗口与工作界面:
功能窗口简介:
从左到右,从上到下的顺序(3 + 4 个)。
符号窗口:
显示的是文档窗口的代码结构,宏、函数声明、结构体、函数等。文档窗口:
显示当前项目窗口中选择的文件。项目窗口:
当前要分析的项目文件。上下文窗口:
这个窗口一般配合关联窗口使用,单机关联窗口的某一项,可以自动在上下文窗口显示该项的上下文,双击上下文内容,则可以在文档窗口打开上下文。关联窗口:
显示文档中的符号在哪些地方进行了引用。如哪些地方调用了函数,或该函数调用了哪些函数等。关联窗口可以有好多个。(选择后右键查看关联,calls and callers 查看调用与被调用关系。)代码片段窗口:
可以自定义一些代码片段,使用时直接插入即可。粘贴窗口:相当于是定义了好多的粘贴板,一个剪辑相当于一个粘贴板。