1

当我包含一个头文件时,我经常想知道拉入了什么。

  • 我现在可以使用哪些功能?
  • 我可以实例化哪些类,它们的功能是什么?
  • 命名空间中是否包含任何内容?
  • 全局命名空间中有任何东西吗?

文档并不总是回答这些问题,也不提供任何保证。

我可以查看源代码,但很难观察还包含其他头文件树的大型头文件。
有没有什么好的程序可以进行这种分析?

4

3 回答 3

5

使用像doxygen这样的工具。你向它提供你图书馆的资源,它会输出交叉引用的文档。

于 2012-11-22T08:39:44.463 回答
2

您可以使用编译器的-E(或/E; 所有 C 和 C++ 编译器使用此选项完全使用此名称) 选项来获取翻译单元的预处理输出。这会转储编译器看到的所有声明。看来,您只关注函数和类,而该-E选项还将编写所有声明。如果你真的只想要函数和类,你可以使用 clang 库来获取抽象语法树 (AST) 并只转储这些。

于 2012-11-22T06:54:19.290 回答
0

如果您使用的是 Visual Studio,则可以选择使用代码助手,例如 MS intellisense、wholetomato 视觉辅助resharper。这些可以在给定的上下文中为您提供所有可访问的变量、类、函数、类型、命名空间、常量等。

其他 IDE 也可能提供此功能,但我从未在 Visual Studio 中使用过它。正如这里所指出的,QtCreator 似乎是一个不错的选择。

于 2012-11-22T09:56:05.600 回答