为了账号安全,请及时绑定邮箱和手机立即绑定

在C / C ++中检测多余的#includes?

在C / C ++中检测多余的#includes?

C++ C
POPMUISE 2019-08-09 16:27:52
在C / C ++中检测多余的#includes?我经常发现文件的标题部分一直变得越来越大但它永远不会变小。在源文件的整个生命周期中,类可能已经移动并被重构,很可能有很多#includes不需要在那里再存在。将它们留在那里只会延长编译时间并增加不必要的编译依赖性。试图弄清楚哪些仍然需要可能是相当繁琐的。是否有某种工具可以检测多余的#include指令并建议哪些可以安全删除?lint可能这样做吗?
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

它不是自动的,但doxygen将生成#included文件的依赖关系图。你必须在视觉上仔细阅读它们,但它们对于获得使用什么的图片非常有用。


查看完整回答
反对 回复 2019-08-09
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

检测多余包含的问题在于它不能仅仅是类型依赖性检查器。一个多余包括为它提供了什么有价值的汇编文件,并不会改变它的其他文件依赖其他项目。头文件可以通过多种方式改变编译,例如通过定义常量,重新定义和/或删除已使用的宏,添加一个命名空间,该命名空间可以在某种程度上改变名称的查找。为了检测命名空间之类的项目,您需要的不仅仅是预处理器,实际上您几乎需要一个完整的编译器。

Lint更像是一种风格检查器,当然不具备这种全部功能。

我想你会发现检测多余包含的唯一方法是删除,编译和运行套件。


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 546 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信