c# 简易绘制C语言头文件包含关系图 v2.0

老规矩,先上图

节点样式说明:

1.粉色圆角,说明该节点下有循环引用

2.黄色菱形,说明该节点代表的文件在项目目录下未找到。

3.红色圆角,说明循环引用(从开始到最终,这种感情没变过,没有谁。。。。。——乱入的歌词君)。

简单用用还行,不过可后续完善、实现的功能还是有很多的。比如项目加载和分析拆分下,就可以随便指定一个文件进行分析,而不用每次都再分析下整个项目。

效率问题:在测试时,我试着分析了一个公司里很大的一个嵌入式项目,发现在节点巨大的情况下,treeGX控件的效率变得很糟糕,进而导致程序可用性严重降低。当然也没有必要一次性绘制整个项目的包含关系,可以添加一个“绘制指定模块”的功能来规避此类问题。并且也可以添加一个监视节点绘制效率的功能,比如一个节点若绘制超时,则abort掉。

好了,技术有限,权当抛砖引玉了。

ps:不知怎么了,csdn上传资源的页面打不开了。不过放到github上了。

下载地址:https://github.com/geeking/Jonce

时间: 2024-07-30 10:19:57

c# 简易绘制C语言头文件包含关系图 v2.0的相关文章

c# 简易绘制C语言头文件包含关系图

最近在做一个项目的移植工作,项目很大,光c文件大约有1800多.由于某些需要,想要对某些代码文件引用的.h文件进行分析. 网上找了好久,暂无发现类似的工具. 正好,今天放假,就做了这么个工具. 好了,废话不多说了,先上图. 由于是自己做的个demo,所以只是先注重大体功能上的实现,细节上还有很多不足.比如没有使用多线程,去除代码文件中注释的地方还有个漏洞(文件读取1M导致的,不过几乎没影响),还有循环绘制node的地方(逻辑上稍微修改下更好). 后面奉上代码,大家可以自己根据需求继续修改,也可以

C语言头文件的使用(转载)

C语言头文件的使用 ——by janders 转载请注名作者和出处,谢谢! 原文:http://blog.csdn.net/janders/article/details/611081 C语言中的.h文件和我认识由来已久,其使用方法虽不十分复杂,但我却是经过了几个月的“不懂”时期,几年的“一知半解”时期才逐渐认识清楚他的本来面目.揪其原因,我的驽钝和好学而不求甚解固然是原因之一,但另外还有其他原因.原因一:对于较小的项目,其作用不易被充分开发,换句话说就是即使不知道他的详细使用方法,项目照样进行

(转) C语言头文件、库文件的查找路径

在程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有        些公    用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使        用.这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错. 对文件包含命令还要说明以下几点:1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来.例如以下写法都是允许的:    #include"stdio.h"    #include   

C语言头文件、库文件的查找路径

在 程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有些公用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使用.这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错. 对文件包含命令还要说明以下几点:1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来.例如以下写法都是允许的:    #include"stdio.h"    #include    但是这两种形式是有区别的:使用尖括号表

c语言 头文件

一直以为C语言头文件的作用和 java中的import,php中的import是一样的,是引入方法的作用,但这是错的. 找了很多资料,终于找到一个正确的解读: C++/C编译器在扫描到一条函数调用语句时首先应当知道该函数的原型或定义,函数原型一般都放在头文件中,函数定义则放在源文件中,当源文件或头文件通过#include指令包含另一个头文件的时候,编译预处理器用头文件的内容取代#include伪指令.这就是说,头文件的所有内容最终都会被合并到某一个或某几个源文件中,如此将每一个包含的头文件递归地

C语言头文件中包含的函数

math.h常用函数 int  abs   (int x); double  acos  (double x); double  asin  (double x); double  atan  (double x); double  atan2 (double y, double x); double  atof  (const char *s); double  ceil  (double x); double  cos   (double x); double  cosh  (double

C基础-标准C语言头文件

标准C语言头文件 ISO C标准定义的头文件(24项) <assert.h> 验证程序断言 <complex.h> 支持复数算术运算 <ctype.h> 字符类型 <errno.h> 出错码 <fenv.h> 浮点环境 <float.h> 浮点常量 <inttypes.h> 整型格式转换 <iso646.h> 替代关系操作符宏 <limits.h> 实现常量 <locale.h> 局部类

c语言头文件中定义全局变量的问题

问题是这么开始的: 最近在看一个PHP的扩展源码,编译的时候的遇到一个问题: ld: 1 duplicate symbol for architecture x86_64 仔细看了一下源码,发现在头文件中 出现了全局变量的定义. 简化一下后,可以这么理解: // t1.h #ifndef T1_H #define T1_H int a = 0; #endif //------------------ //t1.c #include "t1.h" #include "t2.h&

windows与linux 标准c语言头文件

C语言符合标准的头文件#include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> //定义错误码 #include <float.h> //浮点数处理 #include <fstream.h> //文件输入/输出 #include <iomanip.h> //参数化输入/输出 #include <iostream.h> //数据流输入/输