首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在大型项目中按名称查找函数的最佳方法是什么?

在大型项目中按名称查找函数的最佳方法是什么?
EN

Stack Overflow用户
提问于 2013-04-26 18:20:24
回答 6查看 494关注 0票数 2

假设我们有一个由100个文件组成的项目(例如,一个库),每个文件包含大约1000行代码。您想要查找函数awesome_foo(...)你是怎么做到的?老实说,我觉得给它加点油很恐怖也没什么效果。

编辑:我主要寻找函数定义

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-04-26 18:25:48

如果您可以使用像notepadd++这样的工具,它有一个很棒的find in files工具,它将返回所有直接文本搜索的实例,甚至是正则表达式。我经常使用它,它非常有用。

票数 3
EN

Stack Overflow用户

发布于 2013-04-26 18:25:32

grep -irnw "awesome_foo" *肯定会给你结果。

这些参数包括:

忽略大小写,--

- -i

忽略模式和输入文件中的大小写差异。

行号,-n

在输出的每一行前面加上其输入文件中的行号。

-R、-r --递归

递归地读取每个目录下的所有文件;这相当于-d递归选项。

-w,--单词-regexp

只选择那些包含构成整个单词的匹配项的行。测试是匹配子字符串必须位于行的开头,或者前面必须是非单词组成字符。同样,它必须在行尾或后面跟一个非单词组成字符。单词组成字符由字母、数字和下划线组成。

票数 4
EN

Stack Overflow用户

发布于 2013-04-26 18:58:45

集成开发环境解析您的代码并生成一个索引,该索引允许您通过ctrl+clicking或使用键盘快捷键导航到每个符号的声明(或用法)。这就是人们经常在大型代码库上工作的方式。

如果您没有使用IDE,您仍然有一些选择。

是一个索引器,它读取源文件并生成包含程序符号信息的“索引文件”。它可以连接到一个编辑器(比如Vim),或者只是生成一个人类可读的符号引用。

这是示例programctags -x输出

代码语言:javascript
运行
复制
DrawGLScene        37 lesson5.c        void DrawGLScene()
InitGL             15 lesson5.c        void InitGL(int Width, int Height)    // We call this right after our OpenGL window is created.
ReSizeGLScene      24 lesson5.c        void ReSizeGLScene(int Width, int Height)
keyPressed         62 lesson5.c        void keyPressed(unsigned char key, int x, int y)
main               78 lesson5.c        int main(int argc, char **argv)

它看起来像“名称、行和文件、签名”,可以很容易地手动用作索引。

−x

将表格形式的、人类可读的交叉引用(xref)文件打印到标准输出,而不是生成标记文件。输出中包含的信息包括:标记名;标记的类型;定义标记的文件的行号、文件名和源代码行(带有压缩的额外空格)。不写入标记文件,并且将忽略影响标记文件输出的所有选项。此功能的示例应用程序生成位于源文件(例如ctag−x−−c−kinds=v−−file−scope=no文件)中的所有函数的列表,或生成位于源文件(例如ctag−x−−c−kinds=v−−file−scope=no文件)中的所有外部可见全局变量的列表。此选项必须出现在第一个文件名之前。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16234116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档