cppcheck 的规则集

2024-02-23

cppcheck允许你创建自己的规则文件,但我不知道cppcheck的功能暴露了多少。

是否有人正在开发一套可以强制执行的JSF http://www.stroustrup.com/JSF-AV-rules.pdf or MISRA http://www.misra-cpp.com/ rules?


您将无法将所有 MISRA/JSF 规则和指令实现为 cppcheck 规则,大多数只是限制某些 C 语言功能和结构或与样式相关的直接规则和指令(想到的一些规则和指令:./ 之前/之后的空格) ->、单行上的参数数量、使用联合来提供访问内存的不同方法、在 char 之前存在无符号/有符号等。

User 艾拉·巴克斯特 https://stackoverflow.com/users/120163/ira-baxter几乎把它钉在了comment https://stackoverflow.com/questions/11966613/why-does-cppcheck-not-find-this-obvious-array-out-of-bounds-error#comment15968165_11976058关于涉及 cppcheck 的另一个问题:并非所有内容都可以表示/简化为模式。依赖模式对于自定义规则使得处理和检测更高级别的问题变得困难,例如与types (例如类型上的 sizeof() ;您必须解析和收集用作类型表示的标记(typedef、枚举)), 遗产 (例如,类,包括派生类,既用作虚拟类又用作非虚拟类), and scope。这些需要被硬编码到 cppcheck 中(你总是可以 fork cppcheck...)

无论如何,您是否接触过 MISRA(或 JSF)规则?这是项目的要求吗?如果没有,您可以获取 MISRA 指南的副本(您已经拥有 JSF 指南)并检查可以使用 PCRE 模式实现的指南。如果这是一项要求,我建议您“投资”一个商业产品,该产品确实检查 MISRA/JSF 指南并使用这两种工具。

最后一点:您不需要所有的 MISRA/JSF 规则,并且许多工具会忽略其中的一小部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cppcheck 的规则集 的相关文章

随机推荐

  • 无法删除 Android Studio 中的目录

    今天我将 Android Studio 更新到 2 0 当我运行我的项目时出现此错误 Error Execution failed for task app clean gt Unable to delete directory media
  • 删除 MongoDB 数据库中的所有内容

    我正在 MongoDB 上进行开发 出于完全非邪恶的目的 我有时想清除数据库中的所有内容 即删除每个集合以及周围可能存在的任何其他内容 然后从头开始 是否有一行代码可以让我做到这一点 提供 MongoDB 控制台方法和 MongoDB Ru
  • 使用 jQuery 从输入值中删除给定的字符串

    我有一个包含三个整数值的隐藏字段 例如
  • 在 Microsoft Edge 中打开跨源窗口时忽略 window.open() 参数

    在 Microsoft Edge 中 以下代码片段将忽略传递给的选项window open when url与当前域的来源不同 但它在 Chrome 和 Firefox 中运行良好 并且当域是同源时 const popupWindow wi
  • libavformat/ffmpeg 与 x264 和 RTP 同步时出现问题

    我一直在开发一些实时直播的流媒体软件 来自各种摄像机和网络流使用 H 264 为了实现这一点 我直接使用 x264 编码器 使用 零延迟 预设 并提供 NAL 因为它们可用于 libavformat 打包到 RTP 最终是 RTSP 中 理
  • Epson打印机连接失败状态ERR_CONN

    我有一台 Epson 打印机 我使用 SDK 提供的 epos2 printer 示例项目 代码与我的应用程序集成 我复制了相同的代码 但它似乎永远不起作用 但是 当我将示例项目连接到打印机时 效果相同 private boolean ru
  • 安卓谷歌登录不可用?

    所以我的项目遇到的一个问题是通过谷歌登录不能一致工作 即 它适用于我的朋友 而不是我的计算机上的我 尽管它昨天在擦除我的手机之前对我有用 手机已损坏 我们的登录代码是google登录的标准 问题是我认为结果一直返回false 代码 prot
  • 为什么我们不能在 firebase 身份验证中使用 getUid() 向您的后端服务器进行身份验证

    在此代码片段 firebase 文档 中 他们提到不要使用 user getUid 向后端服务器进行身份验证 请改用 FirebaseUser getToken FirebaseUser user FirebaseAuth getInsta
  • 如何使用 CakePHP 检查模型是否存在?

    我在通用函数中动态加载模型 我注意到有时我想跳过加载模型 因为它会引发 404 错误 如何检查模型是否存在 就像是 if this gt modelexists type this gt loadModel type else return
  • 如何使用 PHP 的curl 函数从上次重定向中获取标头?

    如果我执行设置为遵循重定向并返回标头的 cURL 请求 它将返回所有重定向的标头 我只想要返回最后一个标头 以及内容正文 我该如何实现这一目标 这是另一种方法 url http google com opts array CURLOPT R
  • 如何使用带有文字点的 Perl 哈希键?

    我有一个 Perl 中的哈希值 它已从一些遗留代码转储到其中 键名现在已从简单的 reqHdrs 更改为 reqHdrs bla rec gt reqHdrs bla 我的问题是现在我似乎无法从哈希访问该字段有什么想法吗 以下是我的错误 D
  • 在 R 中的 ggplot geom_bar 中强制条形图从低于 0 的值开始

    我想使用 ggplot 绘制条形图 我使用scale y log10 来重新缩放y 轴 当使用下面的脚本时 我得到两个方向 向上和向下 的条形图 并且条形图从 1 开始 我明白这是因为 log10 1 0 ggplot data dat a
  • 开发自定义锁屏[重复]

    这个问题在这里已经有答案了 我想开发看起来像 iPhone 锁屏的自定义锁屏应用程序 有这方面的教程或示例吗 如果没有 我应该从哪里开始 Android SDK 不支持创建 自定义锁屏 aap 您只能在自定义固件中修改锁屏行为 UPDATE
  • .so、.la 和 .a 库文件有什么区别?

    我知道一个 so文件是一种动态库 许多线程可以共享此类库 因此不需要在内存中拥有多个副本 但有什么区别 a and la 这些都是静态库吗 如果动态库比静态库有很大优势 为什么仍然有很多静态库 我什么时候应该尝试将代码构建到 so or a
  • PrimeNG 表:如何开始单元格编辑?

    我有一个 PrimeNG p 表 其中包含许多列和行 其中一列使用输入作为其单元格编辑器 精简版如下
  • 构建时出现 Docker 文件非零代码 100 错误

    这是我的 Docker 文件 FROM ubuntu 16 04 MAINTAINER Alexandre Savio lt gt RUN ln snf bin bash bin sh ARG DEBIAN FRONTEND noninte
  • 当系统显示当前正在进程中使用用户时,如何删除Linux中的用户[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试删除我在 ubuntu 上创建的用户 但是 当我使用以下命令时 userdel r cafe fixer 我收到以下消息 use
  • ProgressDialog 未显示在 AsyncTask 中

    我正在创建一个 Android 应用程序 该应用程序依赖于该应用程序从数据库获取的数据 为了获取这些数据 我有以下类 此类从数据库中以 JSON 格式获取数据 对其进行翻译并返回 public class Json public Strin
  • 允许对易失性对象进行优化

    From ISO IEC 9899 201x部分5 1 2 3 程序执行段落4 在抽象机中 所有表达式都按以下指定的方式求值 语义 实际的实现不需要评估一部分 表达式 如果它可以推断出它的值没有被使用并且没有 产生所需的副作用 包括任何由以
  • cppcheck 的规则集

    cppcheck允许你创建自己的规则文件 但我不知道cppcheck的功能暴露了多少 是否有人正在开发一套可以强制执行的JSF http www stroustrup com JSF AV rules pdf or MISRA http w