在C / C ++中检测多余的#includes?我经常发现文件的标题部分一直变得越来越大但它永远不会变小。在源文件的整个生命周期中,类可能已经移动并被重构,很可能有很多#includes不需要在那里再存在。将它们留在那里只会延长编译时间并增加不必要的编译依赖性。试图弄清楚哪些仍然需要可能是相当繁琐的。是否有某种工具可以检测多余的#include指令并建议哪些可以安全删除?lint可能这样做吗?
3 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
检测多余包含的问题在于它不能仅仅是类型依赖性检查器。一个多余包括为它提供了什么有价值的汇编文件,并不会改变它的其他文件依赖其他项目。头文件可以通过多种方式改变编译,例如通过定义常量,重新定义和/或删除已使用的宏,添加一个命名空间,该命名空间可以在某种程度上改变名称的查找。为了检测命名空间之类的项目,您需要的不仅仅是预处理器,实际上您几乎需要一个完整的编译器。
Lint更像是一种风格检查器,当然不具备这种全部功能。
我想你会发现检测多余包含的唯一方法是删除,编译和运行套件。
- 3 回答
- 0 关注
- 546 浏览
添加回答
举报
0/150
提交
取消