如何从头文件中快速识别函数

How to quickly identify functions from header files?

本文关键字:识别 函数 文件      更新时间:2023-10-16

我对C/c++有点陌生,我发现自己花了太多的时间来搜索头文件(一个无害的include实际上可能会带来几十个头文件)。即使像Visual Studio这样有用的ide也并不总是有用的;有时,当我试图找到一个函数的定义时,它会提示我从几个函数中进行选择——这正是我试图避免的事情。

所以…在一个非常大的项目中,有数千个头文件和许多函数共享相同的名称和参数,毫无疑问,确定正在调用哪个特定函数的最佳方法是什么?

尝试将/showIncludes添加到编译器命令行(在项目设置,配置属性,C/c++,命令行中)。这将输出给定.cpp文件编译中使用的所有头文件。这不是一个快速的方法,但它是一个可靠的方法。

当智能感知不工作时,我建议在文件中查找。这样更容易在头文件中跟踪定义。我发现我通常能分辨出哪个是相关的声明。

请记住,你不能在头文件中找到源代码,除非你正在处理模板或内联函数。因此,通常没有理由试图区分正在应用哪些声明。如果定义存在于源文件(.c,.cpp)中,则只能有一个该名称和签名的函数用于编译。如果函数名是微软或其他来源发布的API,通常最好谷歌一下。

像Visual Studio的Visual Assist这样的工具也提高了定位这些定义的能力。此外,你可以按摩智能感应,使其更好地工作。尝试删除智能感知数据库并重新构建它。您可以通过它在错误视图中显示的"错误"看到它在哪里出了问题。通常需要改进包含目录,特别是当这是一个makefile项目时。如果它使不应该变灰的代码变灰,那么某些预处理符号是错误的。保持智能感知通常是值得的,因为它工作时很棒。

诸如Visual Studio的Visual Assist之类的工具有它们自己的,通常是改进的类似智能感知的查找定义的方法。

无可否认,我对c++(以及一般的编程)还是个新手。但是,我认为你在问题中描述的Visual Studio特性是你能得到的最大帮助。这能帮你缩小范围,但你还是得好好做些调查。

询问编译器。不,真的!这是唯一确定的方法。

尝试使用Microsoft visual studio 2005。你可以很容易地跳转到函数定义,函数声明,你也可以看到函数调用和调用者的图表。