扫描头文件的程序,并报告可利用的代码?

问题描述 投票:1回答:3

当我包含一个头文件时,我常常想知道是什么内容。

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

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

我可以查看源代码,但是对于包含其他标头树的大型头文件也很难观察到。 有什么好的程序可以做这种分析吗?

c++ c header static-analysis
3个回答
5
投票

使用像doxygen这样的工具。您将它的库提供给它,并输出交叉引用的文档。


2
投票

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


0
投票

如果您使用的是Visual Studio,则可以使用代码帮助程序,例如MS intellisense,wholetomato visual assistresharper。这些可以在给定的上下文中为您提供所有可访问的变量,类,函数,类型,命名空间,常量等。

其他IDE也可能提供此功能,但我从未使用过Visual Studio以外的其他IDE。似乎QtCreator可能是一个很好的选择,如尖锐的here

© www.soinside.com 2019 - 2024. All rights reserved.