Cpp检查规则不显示 #define,注释

CppCheck rule not show #define, comment

本文关键字:#define 注释 显示 检查 规则 Cpp      更新时间:2023-10-16

我正在为 cppCheck 创建自定义规则。当我创建规则时,例如不允许在项目中 #define。但是 --rule=.+ 在我的测试项目中没有显示 #define。 cppcheck 是否有任何选项或标志在我的代码中显示 #define?

我的规则文件:

<?xml version="1.0"?>
<rule version="1">
<pattern>#define</pattern>
</rule>

我的例子:

#define TEST 1
int main() {
int a = TEST;
return 0;
}

> https://sourceforge.net/projects/cppcheck/files/Articles/writing-rules-2.pdf的文档指出:"Cppcheck 数据已预处理。没有评论,#define,#include 等。

作为替代方案,您可以使用cppcheck --dump yourfile.c创建XML转储,并对转储进行后处理,例如通过Python脚本。 然后,示例的#define TEST 1行是"rawtokensdirectivelist"部分的一部分。 一些 Cppcheck 插件就是这样做的(例如 Python MISRA-C 插件(。请参阅 GitHub 上 Cppcheck 的"插件"目录。在此目录中,还有一个 Python 帮助程序脚本cppcheckdata.py它读取转储文件并为令牌、函数等创建对象列表。