|
|
1
29
免责声明: 我的日常工作是为一家开发静态分析工具的公司工作。 如果大多数(如果不是全部)静态分析工具没有某种形式的标头使用检查,我会感到惊讶。你可以使用 this 在评估工具时,您可能会考虑以下几点:
当你有局部和专业化时,也适用类似的规则。无论是否选择专业化,您都需要确保所有专业化都是可见的:
对于重载示例,暴力方法可能会导致程序仍能编译,但行为不同。 您可以注意的另一种相关分析类型是检查类型是否可以前向声明。请考虑以下几点:
在上面的例子中,不需要“A”的定义,因此可以更改头文件“foo.h”,使其仅对“A”进行正向声明:
|
|
|
2
22
|
|
|
3
5
|
|
|
5
3
|
|
|
6
1
把它放在夜间cron中,它应该能完成这项工作,使有问题的projcet没有未使用的头文件(很明显,你总是可以手动运行它,但执行起来需要很长时间)。唯一的问题是,不包含标头不会产生错误,但仍然会产生代码。 |
|
|
7
1
我手动完成了这项工作,由于编译时间减少,在短期内(哦,这是长期的吗?-这需要很长时间)是值得的:
这也是一个递归过程——每个保留的头文件都需要检查是否有任何头文件
实际上,我对C++编译器有点恼火,它们应该能够告诉你什么是不需要的——微软编译器可以告诉你什么时候可以在编译过程中安全地忽略对头文件的更改。 |
|
|
8
0
由于它是用Java编写的,因此显然可以在linux上运行。 该项目的链接是 https://sourceforge.net/projects/chksem/files/chksem-1.0/ |
|
|
9
-1
如果您首先确保每个头文件都能自行编译,那么删除未使用的包含的大多数方法都会更好。我按如下方式相对快速地完成了这项工作(为拼写错误道歉——我在家打字:
哪里
|