【问题标题】:program that scans a header file, and reports utilizable code?扫描头文件并报告可用代码的程序?
【发布时间】:2012-11-22 06:36:51
【问题描述】:
当我包含一个头文件时,我经常想知道拉入了什么。
- 我现在可以使用哪些功能?
- 我可以实例化哪些类,它们的功能是什么?
- 命名空间中是否包含任何内容?
- 全局命名空间中有什么东西吗?
文档并不总是回答这些问题,也不提供任何保证。
我可以查看源代码,但很难观察还包含其他头文件树的大型头文件。
有没有什么好的程序可以做这种分析?
【问题讨论】:
-
而不是什么函数/类/等。可以通过包含特定的头文件来获得,您应该查看哪些函数/类/等。您需要,然后查找它定义/声明的头文件。使用参考站点such as this 搜索您需要的任何内容,它会告诉您您需要哪些头文件。
标签:
c++
c
header
static-analysis
【解决方案1】:
使用doxygen 之类的工具。你向它提供你图书馆的资源,它会输出交叉引用的文档。
【解决方案2】:
您可以使用编译器的 -E(或 /E;所有 C 和 C++ 编译器都使用此选项完全使用此名称)选项来获取翻译单元的预处理输出。这会转储编译器看到的所有声明。看来,您只关注函数和类,而 -E 选项也将编写所有声明。如果你真的只想要函数和类,你可以使用 clang 库来获取抽象语法树 (AST) 并只转储这些。
【解决方案3】:
如果您使用的是 Visual Studio,则可以选择使用代码助手,例如 MS intellisense、wholetomato visual assist 或 resharper。这些可以为您提供给定上下文中所有可访问的变量、类、函数、类型、命名空间、常量等。
其他 IDE 也可能提供此功能,但我从未在 Visual Studio 中使用过它。正如here 所指出的那样,QtCreator 似乎是一个不错的选择。