CppCheck 规则不显示#define,注释
CppCheck rule not show #define, comment
我正在为 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;
}
文档 writing-rules-2.pdf
在 https://sourceforge.net/projects/cppcheck/files/Articles/ 指出:"The Cppcheck data is preprocessed. There are no comments, #define, #include, etc."
作为替代方案,您可以使用 cppcheck --dump yourfile.c
创建一个 XML 转储,然后 post 处理转储,例如通过 Python 脚本。
您示例的 #define TEST 1
行是 rawtokens
和 directivelist
部分的一部分。
几个 Cppcheck 插件就是这样做的(例如 Python MISRA-C 插件)。请参阅 GitHub 处的 Cppcheck 目录 "addons"。在此目录中还有一个 Python 帮助程序脚本 cppcheckdata.py
,它读取转储文件并为标记、函数等创建对象列表。
我正在为 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;
}
文档 writing-rules-2.pdf
在 https://sourceforge.net/projects/cppcheck/files/Articles/ 指出:"The Cppcheck data is preprocessed. There are no comments, #define, #include, etc."
作为替代方案,您可以使用 cppcheck --dump yourfile.c
创建一个 XML 转储,然后 post 处理转储,例如通过 Python 脚本。
您示例的 #define TEST 1
行是 rawtokens
和 directivelist
部分的一部分。
几个 Cppcheck 插件就是这样做的(例如 Python MISRA-C 插件)。请参阅 GitHub 处的 Cppcheck 目录 "addons"。在此目录中还有一个 Python 帮助程序脚本 cppcheckdata.py
,它读取转储文件并为标记、函数等创建对象列表。