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

我对C / C ++有些新意,我发现自己花费了大量的时间来搜索头文件(一个无辜的包括实际上可能会带来更多的头文件)。 甚至像Visual Studio这样有用的IDE也并不总是有用; 有时当我尝试去定义一个函数时,它会提示我从几个中做出选择 – 这是我试图避免的事情。

所以……在一个包含数千个头文件和许多共享相同名称和参数的函数的大型项目中,最好的方法是确定调用哪个特定函数?

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

当智能感知不起作用时,我建议在文件中查找。 以这种方式跟踪标题中的定义更容易。 我发现我通常可以说出哪些是相关的声明。

请记住,除非您正在处理模板或内联函数,否则无法在标题中找到源代码。 因此,通常没有理由试图区分正在应用哪些声明。 如果定义存在于SOURCE文件(.c,.cpp)中,则只能有一个该名称和签名的函数进行编译。 如果它是来自Microsoft或其他来源的已发布API,则通常最好使用函数名称。

Visual Assist for Visual Studio等工具也提高了定位此类定义的能力。 此外,您可以按摩Intellisense更好地工作。 尝试删除智能感知数据库并重建它。 您可以通过错误视图中显示的“错误”查看它遇到问题的位置。 通常,您需要改进包含目录,特别是如果这是一个makefile项目。 如果它灰显不应该变灰的代码,则某些预处理器符号是错误的。 保持智能感知通常是值得的,因为它在工作时很棒。

诸如Visual Studio Visual Studio之类的工具有自己的,通常改进的类似intellisense的查找定义的方法。

不可否认,我还是C ++(以及一般编程)的新手。 但是,我认为您在问题中描述的Visual Studiofunction是您将获得的最大帮助。 它会为你缩小一些东西,但你仍然需要做一些好的调查。

问问编译器。 不完全是! 这是唯一确定的方法。

尝试使用Microsoft visual studio 2005.您可以轻松跳转到函数定义,函数声明也可以看到函数调用和调用者图。