我正在处理的项目(在 C 中)有许多代码段,可以使用预处理器指令基于编译时配置包含或省略。
我有兴趣估计不同配置的代码行添加到我的核心项目中,或从中减去多少行代码。换句话说,我想在某处写一些#define
和#undef
行,并了解它对LOC计数的作用。
我不熟悉LOC计数器,但从粗略的搜索来看,似乎大多数易于使用的工具都没有。我认为这不是一个难题,而只是一个相当罕见的衡量标准。
是否有现成的工具可以完成我正在寻找的工作,或者自己做一些简单的方法?排除评论和空白行也是一个很好的选择。
答案 0 :(得分:6)
通过预处理器运行它。例如,在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.
答案 1 :(得分:0)
您可以从编译器获得预处理器输出,但这可能会产生其他不必要的副作用,例如扩展复杂的多行宏,并以您不期望的方式添加到LOC计数中。
为什么不编写自己的简单预处理器,并使用自己的include / exclude指令?你可以简单地解析它们,然后通过这个预处理器管道代码,然后再将它发送到像CLOC这样的全功能LOC计数器。