1

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

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

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

是否有现有的工具可以做我正在寻找的东西,或者有一些简单的方法可以自己做?排除注释和空白行也是一个主要的优点。

4

2 回答 2

7

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

  -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.
于 2011-04-28T07:18:04.563 回答
0

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

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

于 2011-04-28T07:24:12.487 回答