【问题标题】:How to remove non-used variables and functions如何删除未使用的变量和函数
【发布时间】:2011-03-08 09:28:43
【问题描述】:

我开始使用以前程序员的 C++ 代码。我知道有很多未调用的函数和未使用和/或初始化的变量。我想知道是否有一些工具可以自动“清理”代码并删除所有这些未使用的代码。我说的是源代码,而不是最终的构建输出。我更喜欢开源解决方案。

【问题讨论】:

  • 我只是不知道程序员是如何让代码变成这样的。我痴迷地清理我不使用的东西。如果后来发现它们确实有某种用途,源代码管理可以让我找回它们。
  • 我完全同意你的看法。但在这种情况下,我正在使用另一个程序员的代码,我必须清理它,所以我没有其他解决方案:)

标签: optimization analysis coding-style


【解决方案1】:

许多编译器/链接器会在一定程度上为您修剪代码,例如 Visual C++/OPT:REF 开关。

【讨论】:

  • @Werner:这有点像this question...只有编译器/链接器拥有的代码知识。
  • 我们谈论的是构建输出还是源代码?我很想知道是否有一些工具可以做后者。最好的。
【解决方案2】:

运行CPPCheck 可能会对您的代码进行静态分析,从而获得一些有用的信息。将所有错误视为警告还有助于识别哪些变量未使用,因为您的代码在解决之前不会编译。

您可以做的另一件事是创建一组单元测试来覆盖预期的功能并通过覆盖工具(例如 gcov,如果您使用 GCC)运行它,这将显示执行了哪些代码行以及多少次。

【讨论】:

    【解决方案3】:

    这是从二进制文件中删除死代码的编译器/链接器作业。 使用 gcc 标志 -fdata-sections 和 -ffunction-sections 编译您的源代码,然后使用标志 -gc-sections 链接您的二进制文件。

    我认为您也可以在编译时为未使用的静态变量生成警告。

    最后,您可以使用 gcov 或等效工具进行代码覆盖

    【讨论】:

      猜你喜欢
      • 2012-11-03
      • 2019-07-23
      • 2013-01-27
      • 1970-01-01
      • 2019-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      相关资源
      最近更新 更多