广州网站建设中心,页面设计包括哪些内容,青海制作网站,百度推广怎么做的网站之前在https://blog.csdn.net/fengbingchun/article/details/8887843 介绍过Cppcheck#xff0c;那时还是1.x版本#xff0c;现在已到2.x版本#xff0c;这里再总结下。 Cppcheck是一个用于C/C代码的静态分析工具#xff0c;源码地址为https://github.com/danmar/cppcheck … 之前在https://blog.csdn.net/fengbingchun/article/details/8887843 介绍过Cppcheck那时还是1.x版本现在已到2.x版本这里再总结下。 Cppcheck是一个用于C/C代码的静态分析工具源码地址为https://github.com/danmar/cppcheck 最新发布版本为2.10License为GPL-3.0.它支持在Windows、Linux、Mac上安装。 Cppcheck提供了独特的代码分析来检测bugs并专注于检测未定义的行为和危险的编码结构。它的目标是仅检测代码中的真正错误并生成尽可能少的误报。Cppcheck关注bug而不是代码风格。 静态分析是一个非常大的领域Cppcheck只涵盖了其中的一部分。没有一种工具能覆盖整个领域。每个工具都有独特的代码分析使用一组工具比使用一种工具要好是很好的补充。 未定义的行为(undefined behaviour)包括 (1).dead pointers; (2).除以0; (3).整数溢出 (4).无效的位移操作; (5).无效的转换 (6).STL的用法无效 (7).内存管理 (8).空指针解引用 (9).越界检查 (10).未初始化的变量 (11).写const数据 安装:从https://github.com/danmar/cppcheck/releases/tag/2.10 下载cppcheck-2.10-x64-Setup.msi双击进行安装并将安装路径即cppcheck.exe所在路径加入到系统环境变量中。 结果消息(messages)包括 (1).error: 执行代码时未定义的行为或其它错误如内存泄漏; (2).warning: 执行代码时可能存在未定义的行为 (3).style: 风格问题例如未使用的函数、冗余代码、constness、运算符优先级、可能的错误 (4).performance: 基于常识(common knowledge)的运行时性能建议 (5).portability: 可移植性警告 (6).information: 配置问题与语法正确性无关. 注意事项 (1).通过执行cppcheck.exe --help 可查看支持哪些输入参数 (2).语法: cppcheck.exe [options] [files or paths] (3).--file-filterstr: 设置文件过滤器并且仅检查与过滤器匹配的文件如--file-filter*bar.cpp 只分析以bar.cpp结尾的文件; (4).--cppcheck-build-dirdir: Cppcheck将分析信息保存在该文件夹中推荐使用.优点加快分析速度使增量分析成为可能使用多个线程时也可以进行全程序(whole program)分析; (5).--enableid: id可为all, warning, style, performance, portability, information, missingInclude; all启用所有检查当扫描整个程序时建议只使用all,因为这会启用unusedFunction;可以指定多个id,用逗号分开 (6).--file-listfile: 在文本文件中指定要check的文件 (7).-I dir: 给出搜索include文件的路径可有多个-I; (8).--includefile: 在checked文件之前强制include一个文件; (9).--output-filefile: 将结果写入文件; (10).-v或--verbose: 输出更详细的错误信息. 这里使用GitHub Messy_Test/demo/Messy_Test 中的代码进行测试执行命令如下所示 在当前的results目录生成一些文件打开其中的result.txt内容如下对有问题的代码行给出原因说明 GitHub https://github.com/fengbingchun/Messy_Test