静态代码检测遇到的一些问题总结

2023-11-15

393 S Single parameter constructor not ‘explicit’.

原因:只有一个参数的构造函数存在隐式类型转换的可能。
解决方法:
在单参数构造函数之前添加“explicit”。
例子:

class test{
public:
    explicit test(const std::string&name =""):
          m_name(name),height(0),weight(0){}
    int CompareTo(const test& other);
    std::string m_name;
    int height;
    int weight;
};

560 S Scope of variable could be reduced. : ret

原因:参考https://blog.csdn.net/java_1111/article/details/8689040;讲的很清楚。
解决方法:
减小变量作用域,在使用的地方定义,如下图所示
jia减小变量作用域,在使用的地方定义

113 S Non standard character in source.

原因:源文件中出现非法字符。使用如下:

#undef LOG_TAG
#define LOG_TAG "test@DeathListener"

解决方法:将非法字符@去掉。

127 S Array has no bounds specified.

原因:数组未指定边界
解决方法:不修改,
出现问题的地方:main函数传参声明,函数体中未使用,C++代码风格,不影响代码安全。

int main(int /*argc*/, char* /*argv*/[]) {}

331 S Literal value requires a U suffix.

原因:文字值需要U后缀。
解决方法:文字值添加U后缀。

const size_t threadPoolCapacity = 4;

修改后

const size_t threadPoolCapacity = 4U;

90 S Basic type declaration used.

原因:使用了int、char、float、double等基础类型,这是不允许的
解决方法:
添加类似于下面这种typedef,然后在代码中使用int32_t来表示int。

typedef signed char        int8_t;
typedef short              int16_t;
typedef int                int32_t;
typedef long long          int64_t;
typedef unsigned char      uint8_t;
typedef unsigned short     uint16_t;
typedef unsigned int       uint32_t;
typedef unsigned long long uint64_t;

514 S Using directive or declaration in header.

原因:头文件中使用了命名空间。
如下图所示
不能在头文件使用的情况
是为了防止出现以下情况:
两个头文件都定义了namespace NS1;
同事引用这两个头文件时,不同的顺序会出现不一样的结果。
引用头文件的顺序不同导致结果不同
解决方法:使用类似于
#ifndef 大写的当前命名空间名称_头文件名称大写_H_
#define 大写的当前命名空间名称_头文件名称大写_H_
#endif

243 S Included file not protected with #define.

原因:头文件中没有使用#ifndef…#define…#endif保护
解决方法:
使用类似于
#ifndef 大写的当前命名空间名称_头文件名称大写_H_
#define 大写的当前命名空间名称_头文件名称大写_H_
#endif

69 S #pragma used.

原因:头文件使用的是#pragma once保护,没有使用#ifndef…#define…#endif保护
解决方法:将#pragma once保护,改为#ifndef…#define…#endif保护。

119 S Nested comment found.

原因:注释部分嵌套了注释,例如 //… //
/…//…/
解决方法:
将嵌套的注释去掉即可。
例如:/* This is the Outer Comment
/* This is the Inner Comment - not compliant
/
改为
/
This is the Outer Comment
This is the Inner Comment - not compliant */

139 S Construct leads to infeasible code.

原因:代码不会被执行
解决方法:维持现状,不修改

9 S Assignment operation in expression.

原因:表达式中赋值操作
创建临时对象,接收方法的返回值,表达式中不写那么复杂就行,后面补充例子。

219 S User name starts with underscore.

原因:变量名以下划线开头。
解决方法:变量名不以下划线开头。

其他

前面的都是在项目中实际修改过的,下面分享以下写的还不错的,有需要可以参考。
1 S - 20 S
41 S - 60 S
61 S - 80 S
81 S - 100 S
101 S - 120 S
121 S -140 S
201 S - 220S
241 S - 280 S
这个不知道咋命名了

LDRA Standards for C/C++

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

静态代码检测遇到的一些问题总结 的相关文章

  • 语言混合:模型和视图

    考虑开发一个应用程序 其中模型将使用 C 使用 Boost 编写 视图将使用 Objective C 使用 Cocoa Touch 编写 哪里有一些示例展示了如何集成 C 和 Objective C 来开发 iPhone 应用程序 直接从源
  • C#9 顶级语句文件上的属性

    我正在尝试向顶级语句文件添加属性 但没有找到任何相关信息 是否可以 对于某些上下文 我想仅在该文件中禁用规则 SuppressMessage StyleCop CSharp LayoutRules SA1516 ElementsMustBe
  • C++ 有像 Pascal 一样的“with”关键字吗?

    withPascal 中的关键字可用于快速访问记录的字段 有人知道 C 是否有类似的东西吗 前任 我有一个包含许多字段的指针 但我不想这样输入 if pointer gt field1 pointer gt field2 pointer g
  • C++:获取注册表值仅给出第一个字符[重复]

    这个问题在这里已经有答案了 我试图从注册表中获取字符串值 但我只得到第一个字母 HKEY hKey char gamePath MAX PATH if RegOpenKeyEx HKEY CURRENT USER L Software Bl
  • 使用 QSet 作为 Qt 地图容器中的键

    我需要一个映射 其中键是唯一的 并且每个键都是一组或自定义 POD 结构 其中包含 3 个数据项 这些值只是指向对象实例的指针 从阅读Qt 的 QMap 与 QHash 的文档 http qt project org doc qt 4 8
  • 隐形打开的弹出窗口

    第二天就解决这个问题 要重现 请创建新的 WPF 应用程序 xaml
  • 将占位符文本添加到文本框

    我正在寻找一种将占位符文本添加到文本框的方法 就像在 html5 中使用文本框一样 IE 如果文本框没有文本 则会添加文本Enter some text here 当用户单击它时 占位符文本消失并允许用户输入自己的文本 如果文本框失去焦点并
  • CMake 警告:无法为目标生成安全的链接器搜索路径

    在为 pcl 项目运行 CMake 时 我收到一条警告消息 Configuring done CMake Warning at CMakeLists txt 12 add executable Cannot generate a safe
  • C++ 模板参数类型推断

    我有一个这样的C 模板 template
  • 在 C++ 中处理音频缓冲区时,如何执行从 float -> double -> float 的转换

    我目前正在开发一个应用程序 其中音频样本帧在以下回调中进行处理 void Eav07AudioProcessor processBlock AudioSampleBuffer buffer for int channel 0 channel
  • IClaimsTransformation 未触发

    我尝试过实施一个IClaimsTransformation我在 ASP NET CORE 3 1 Web 应用程序中找到的类 public class ClaimsTransformer IClaimsTransformation publ
  • ASP MVC 5 - 403 customError 不起作用

    我正在尝试为我的应用程序创建自定义错误页面 它在大部分情况下都有效 但不适用于403 errors 我的网络配置
  • 从 ef core 的子集合中删除一些项目

    我有一个父表和子表 其中父表与子表具有一对多关系 我想删除一些子项 并且希望父项的子集合反映该更改 如果我使用删除选定的子项RemoveRange 那么子集合不会更新 如果我使用Remove从子集合中删除子集合然后 显然 它不如使用效率高R
  • 使用对象列表构建树

    我有一个带有属性 id 和parent id 的对象列表 我想建造一棵树来连接那些孩子和父母 1 个父对象可以有多个子对象 并且有一个对象将成为所有对象的祖先 实现该功能最快的算法是什么 我使用 C 作为编程语言 但其他语言也可以 像这样的
  • 使用 cudamalloc()。为什么是双指针?

    我目前正在浏览有关的教程示例http code google com p stanford cs193g sp2010 http code google com p stanford cs193g sp2010 学习CUDA 演示的代码 g
  • ASP.NET Web API Swagger(Swashbuckle)重复OperationId

    I have a web api controller like below In swagger output I am having the below image And when I want to consume it in my
  • 为什么从绑定返回的对象会忽略额外的参数?

    假设我有一个带有两个参数的函数 void f int x int y 我想绑定其中之一 我可以用std bind如下 auto partiallyBoundF std bind f 10 1 partiallyBoundF仅需要一个参数 但
  • 统一;随机物体移动[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在制作一款机器人战斗游戏 我希望敌人随机移动 然后有时会向敌人移动 我希望运动包含在其中的代码 else if avoid fal
  • 如何设置 Swashbuckle 与 Microsoft.AspNetCore.Mvc.Versioning

    我们有asp net core webapi 我们添加了Microsoft AspNetCore Mvc Versioning and Swashbuckle拥有招摇的用户界面 我们将控制器指定为 ApiVersion 1 0 Route
  • C# 中成员访问中的问号是什么意思?

    有人可以向我解释一下以下代码中会员访问中的问号是什么意思吗 它是标准 C 的一部分吗 尝试在 Xamarin Studio 中编译此文件时出现解析错误 this AnalyzerLoadFailed Invoke this new Anal

随机推荐

  • Python代码实现图像语义分割

    Python代码实现图像语义分割的步骤详解 原文链接 https www jb51 net article 187249 htm 在网上看到了这篇 代码简洁 身为还没完全入门的小白 每跑通一个程序真的都好开心 1 环境部署 在进行项目设计前
  • Gitee教程(超详细、简单)

    目录 前提 Gitee上传代码到远程仓库 1 打开Git Bash Here 2 配置用户和邮箱 3 初始化仓库 4 添加项目文件至本地仓库 5 将待提交区域的修改提交到本地 Git 仓库 并添加提交注释 必不可少 6 将本地仓库与远程仓库
  • blob字段怎么查看是乱码_MySQL乱码的原因和设置UTF8数据格式

    MySQL使用时 有一件很痛苦的事情肯定是结果乱码 将编码格式都设置为UTF8可以解决这个问题 我们今天来说下为什么要这么设置 以及怎么设置 MySQL字符格式 字符集 在编程语言中 我们为了防止中文乱码 会使用unicode对中文字符做处
  • 因果模型四:实现因果模型的python工具——pycasual

    因果模型四 实现因果模型的python工具 pycasual 关于因果模型 我们在前三篇文章中简单介绍了因果模型的研究发展历程 一个因果模型的数学化求解过程和因果模型在医学和商业领域的两个应用实例 今天我们就来简单介绍一个实现因果模型的py
  • 对UDP编程的初步认识

    UDP与TCP的区别 1 1 TCP协议 传输控制协议 使用TCP协议前 须先建立TCP连接 形成传输数据通道 传输前 采用 三次握手 方式 TCP协议进行通信的两个应用进程 客户端 服务端 在连接中进行大数据量的传输 传输完毕 需释放已建
  • 淘宝开放平台 ISV入驻开发流程

    原本的千牛插件整合到淘宝开放平台中 原本的千牛入驻教程时间为17年的 已经不适用了 最新的新手入驻指南是的是2020年6月的 按照流程登录账号 确定需要创建应用的类目 有的类目比如订单管理都是定向开发者无法申请的 我申请的是服务类目的 根据
  • 【objectARX学习计划】

    按照 ObjectARX开发实例教程 pdf 学习计划 序号 模块 开发功能 是否重点 难度 学时 天 时间计划 完成情况 备注 1 创建和编辑基本图形对象 创建直线 是 容易 1 2 创建圆 是 容易 3 创建圆弧 是 容易 4 创建多段
  • 网页伸缩式导航栏(附源码)

    网页伸缩式导航栏 效果图如下 文件目录 html代码 index html
  • Kubernetes之(十九)资源指标和集群监控

    目录 Kubernetes之 十九 资源指标和集群监控 资源指标和资源监控 metrics server 部署metrics server Prometheus 概述 部署prometheus Grafana数据展示 Kubernetes之
  • .net Core竟然支持xamrain

    终于明白 net Core的意义 以前在微软推出 net Core时 我有点不明白 为啥微软要弄个阉割版的net平台 现在 刚接触 xamarin跨平台开发 发现 net Core竟然轻松支持xamrain开发安卓程序 微软微软 真是用心良
  • Linux系统常用命令

    Linux系统常用命令 一 常用快捷键 ctrl shift table 表示临时变大 ctrl table 表示临时变小 ctrl t 打开多个 一个 终端 永久生效 终端上的 edit 属性设置 ctrl l clear 清屏 ctrl
  • 2021蓝桥杯模拟赛-受伤的皇后

    题目 题目链接 题解 DFS 八皇后问题改编而已 加入判断左上三格内和右上三格内是否存在皇后 代码 include
  • MYSQL对表进行操作

    添加列 基本形式 alter table 表名 add 列名 列数据类型 after 插入位置 示例 在表的最后追加列 address alter table students add address char 60 在名为 age 的列后
  • 84. Largest Rectangle in Histogram

    84 Largest Rectangle in Histogram Given n non negative integers representing an elevation map where the width of each ba
  • 组合预测模型

    组合预测模型 MLP RF多层感知机结合随机森林多输入单输出回归预测 Matlab程序 目录 组合预测模型 MLP RF多层感知机结合随机森林多输入单输出回归预测 Matlab程序 预测结果 评价指标 基本介绍 程序设计 参考资料 预测结果
  • 【Java基础】之深入理解四中访问权限

    这篇文章将深入讲解Java的四种访问权限 访问权限介绍 访问权限控制指的是 本类及本类内部的成员 成员变量 成员方法 内部类 对其他类的可见性 即这些内容是否允许其他类访问 Java 的访问权限一共有四种 public protected
  • iOS提交审核时报错:您必须为要添加的 App 提供版权信息

    可以随便填 但是必填 否则被拒 很耽搁时间
  • java面向对象超详细总结(期末必备)

    文章目录 面向对象 什么是对象 对象的组成 类是什么 类的组成 类的创建语法 类的使用 使用类必须为类创建对象 调用属性 调用方法 方法的重载 构造方法 构造函数 构造器 构造器的语法 对象的引用 this关键字 OOP练习 练习一 案例代
  • LINQ的基本使用

    一 什么是LINQ 长期以来 开发社区形成以下的格局 1 面向对象与数据访问两个领域长期分裂 各自为政 2 编程语言中的数据类型与数据库中的数据类型形成两套不同的体系 例如 C 中字符串用string数据类型表示 SQL中字符串用NVarc
  • 静态代码检测遇到的一些问题总结

    393 S Single parameter constructor not explicit 原因 只有一个参数的构造函数存在隐式类型转换的可能 解决方法 在单参数构造函数之前添加 explicit 例子 class test publi