【问题标题】:Lines of Code as a function of preprocessor definitions代码行作为预处理器定义的函数
【发布时间】:2011-04-28 07:10:28
【问题描述】:

我正在处理的一个项目(在 C 中)有很多代码部分可以根据编译时配置使用预处理器指令包含或省略。

我有兴趣估计不同配置向我的核心项目添加或减少了多少行代码。换句话说,我想在某处写几行#define#undef,并了解这对LOC 计数有何影响。

我不熟悉 LOC 计数器,但粗略搜索了一下,似乎大多数容易获得的工具都没有这样做。我假设这不是一个难题,而只是一个相当不常见的衡量指标。

是否有现有的工具可以满足我的需求,或者有一些简单的方法可以自己完成?排除 cmets 和空白行也将是一个主要的优点。

【问题讨论】:

    标签: c c-preprocessor code-metrics


    【解决方案1】:

    通过预处理器运行它。例如,在 gcc 下,我相信使用选项 -E 可以获得您想要的那种输出。

      -E  Stop after the preprocessing stage; do not run the compiler proper.
          The output is in the form of preprocessed source code, which is sent
          to the standard output.
    

    【讨论】:

    • 酷!我不知道我能做到这一点。正如 Jason 所说,可能会添加一些奇怪的预处理器,但这对我来说是一个很好的简单开始。
    【解决方案2】:

    您可以从编译器中获取预处理器输出,但这可能会产生其他不良副作用,例如扩展复杂的多行宏,以及以您未曾预料到的方式增加 LOC 计数。

    为什么不编写自己的简单预处理器,并使用自己的包含/排除指令?你可以让它们解析起来非常简单,然后通过这个预处理器将你的代码发送到像 CLOC 这样的全功能 LOC 计数器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多