linux环境使用C语言编程:输入一个函数名,在home目录下找到此函数原型;找到目录下所有文件用到

linux环境使用C语言编程:输入一个函数名,在home目录下找到此函数原型;找到目录下所有文件用到此函数的地方,并与函数原型进行匹配,检测参数个数参数类型等是否正确使用... linux环境使用C语言编程:输入一个函数名,在home目录下找到此函数原型;找到目录下所有文件用到此函数的地方,并与函数原型进行匹配,检测参数个数参数类型等是否正确使用。
我的思路是:
使用正则表达式匹配找到函数原型,提取参数类型和参数个数
遍历home目录找出函数使用的地方,并与原函数对比(参数类型,参数个数是否一致)
问题难点是:原函数和调用函数的参数类型和参数个数如何提取。
请各路大神不吝赐教,小弟拜谢了!!!或者有更好的思路也可以提出来让小弟参考一下。
展开
 我来答
z6502367
2014-09-05 · TA获得超过177个赞
知道小有建树答主
回答量:339
采纳率:100%
帮助的人:193万
展开全部
我是这样想的
找到函数之后,截取函数名之后的括号里面的字符串,然后trim前后的空格,然后以‘,’split;生成的数组是几个,参数就是几个;
参数类型的话 原函数就把之前split生成的字符串(如 int abc)以' 'split一下取第一个元素就是类型。但是调用的地方不知道怎么搞,难道要把变量名字搜一下,才能找到是什么类型?
追问

看了你的回答我有了些启发,对于获取参数个数可以通过识别“,”有几个再加1也可以得出参数个数。

有两个问题请教一下

  1. 如何获取原函数括号里面的字符串呢

  2. 对于获取参数类型,如果参数里面有static  int,或者const int这样的声明,我截取第一个元素就不是参数类型了,而是static或者const关键字了,这个该怎么解决呢

     

我回来了调用
2014-09-05 · TA获得超过388个赞
知道小有建树答主
回答量:772
采纳率:0%
帮助的人:462万
展开全部
这个用C编程, 会很麻烦, 都是文本比对, 最好使用shell编程.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式