介绍VS头文件清理功能
从 Visual Studio 17.8.1 开始,它提供了 #include 清理功能,能够移除未使用的头文件,优化头文件导入等功能,这个功能特别好,写文记录下。
直接引入和间接引入

如上图所示,main.cpp直接包含了c.h,间接包含了d.h。
该功能默认启动,Include Cleanup 会对代码进行分析,以识别未使用和间接包含的标头, 反馈可以采用错误列表警告、建议等形式。
它支持将间接引用头文件替换为所依赖的直接头文件。
设置方法
这种检测功能,可能会误报一些依赖关系,可配置哪些文件不需要检测重复包含。
因为手头上的工程是2010的,用2022打开时,.editconfig配置文件无法生效,怎么发现的呢?将相同的.editconfig配置文件添加到原生2022工程中,可以实时生效,用VS2022打开VS2010时,该文件不生效。
建议配置冗余文件和间接包含文件警告级别为 erroring ,如下图所示:

实践心得
不要使用Include自带的优化导入图,它会破坏现有的include顺序以及内容。
按负责的文件夹依次来优化导入。当出现优化建议不符合预期的情况,要手动修改,去掉不必要的导入文件。
因为不同目录的文件可能存在相互引用,执行include优化时,需要一边构建,一边修复错误。防止当前的优化操作导致之前已优化的文件再次出现编译错误。及时编译并修复错误,保证在正确编译基础上,再优化。
提交时,以文件夹为单位提交到本地,完成后再将与编译依赖其他文件单独提交到本地,最后再一次性全部提交到远程。
通过右键执行一键优化时,要等该文件头文件解析结果都出来后再执行,否则有可能会清理错乱问题。
注意,优化器可能会发生错误,这时要相信编译器的判断。
做完上述优化后,要总结优化效果,可以从编译时间、编译输出物大小两个维度来对比优化效果。
小结
本文介绍VS2022中的头文件清理功能,包括基本使用以及实践心得。

浙公网安备 33010602011771号