请教下高手 大家都来给下建议啊
请问在一个很长的C源程序中,怎样设计一个程序,检测出源程序中自定义函数,以及如何检测出这些函数有没有被调用?谢谢。[[it] 本帖最后由 zgthbin 于 2008-3-15 20:11 编辑 [/it]]
----------------解决方案--------------------------------------------------------
检测出源程序中自定义函数,在vc里能直接看到,
检测出这些函数有没有被调用貌似可以用vc6的debug单步执行
----------------解决方案--------------------------------------------------------
我是不是该得做个类似词法分析器、语法分析器、语义分析器?
----------------解决方案--------------------------------------------------------
回复 2# 的帖子
能否详述?谢谢 ----------------解决方案--------------------------------------------------------
回复 3# 的帖子
那好像就是做编译器了,c的编译器很大呢 ----------------解决方案--------------------------------------------------------
用vc6编译一下,旁边会有一个globals打开就看到所有的自定义函数和全局变量
编译过后,按f5会有DEBUG工具条,自己试验一下就可以了。程序有多大?
----------------解决方案--------------------------------------------------------
代码不少于20000行,老师要我做一个东西来检测自定义函数及其调用情况。我现在没有一点头绪。
----------------解决方案--------------------------------------------------------
是否可以利用globals中显示出的函数名来做文章?利用汇编做个词法分析器,把这些函数名作为关键字,来扫描源代码,然后再与“()”来匹配,就能确定该函数被调用过。
----------------解决方案--------------------------------------------------------
个人感觉可以这样检查是否被调用
首先把所有的函数找出来(函数的后面有括号)
再检测,如果不是库函数,并且至少有一次前面出现了类型说明(防止是带残宏),还有一次前面没有类型说明就可以说明函数被调用了
----------------解决方案--------------------------------------------------------
谢谢LS提供的帮助。还要其他人可以进来大家一起讨论下啊
----------------解决方案--------------------------------------------------------