积分推广与运营商+=

2023-11-24

我需要消除 gcc -Wconversion 警告。例如

typedef unsigned short     uint16_t;

uint16_t a = 1;
uint16_t b = 2;
b += a;

gives

warning: conversion to 'uint16_t {aka short unsigned int}' from 'int' may alter its value [-Wconversion]
     b += a;
     ~~^~~~

我可以通过以下方式消除这个问题

uint16_t a = 1;
uint16_t b = 2;
b = static_cast<uint16_t>(b + a);

有什么办法可以保留operator+=并消除警告?谢谢。

EDIT

I use

gcc test.cpp -Wconversion

我的海湾合作委员会版本是

gcc.exe(Rev3,由 MSYS2 项目构建)7.2.0


我需要消除 gcc -Wconversion 警告。

你没有说为什么,但这实际上不太可能。

From 此交换机上的 GCC wiki 页面:

为什么 -Wall 或至少 -Wextra 不启用 Wconversion?

隐式转换在 C 中非常常见。这与前端中没有数据流(参见下一个问题)这一事实有关,导致很难避免对完美工作和有效代码的警告。Wconversion专为特定用途(安全审核、将 32 位代码移植到 64 位等)而设计,其中程序员愿意接受并解决无效警告。因此,如果没有明确请求,则不应启用它。

如果您不想要它,只需将其关闭即可。

用不必要的强制转换来破坏代码,使其更难以阅读和维护,是错误的解决方案。

如果您的构建工程师坚持使用此标志,请询问他们why,并要求他们停止。

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

积分推广与运营商+= 的相关文章

  • InvalidOperationException - 对象当前正在其他地方使用 - 红十字

    我有一个 C 桌面应用程序 其中我连续创建的一个线程从源 实际上是一台数码相机 获取图像并将其放在 GUI 中的面板 panel Image img 上 这必须是另一个线程 如它是控件的代码隐藏 该应用程序可以工作 但在某些机器上 我会在随
  • 用于代数简化和求解的 C# 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 网络上有很多代数求解器和简化器 例如 algebra com 上不错的代数求解器和简化器 然而 我正在
  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • 无模拟功能

    我陷入了一个问题 似乎无法找到解决方案 我使用VS2005 SP1来编译代码 我有一个全局函数 A foo 我有模拟课 class MockA public A public MOCK METHOD0 bar bool 在源代码中 它是这样
  • 如何在 ASP.NET Identity 中编辑用户

    我是 ASP NET Identity 框架的新手 我正在尝试做一些事情 我想要做的是编辑已经注册的用户 然后将用户详细信息更新到数据库 以前 我使用实体框架 然后它生成我的控制器视图并自行建模 但我想更新我的用户详细信息并将用户列表放入列
  • 如何将任意选项字符串解析为Python字典

    我试图找到最 Pythonic 的方法来获取包含命令行选项的字符串 t 500 x c 3 d 并将其变成字典 t 500 x True c 3 d True UPDATE 字符串还应该能够包含 long 选项 以及中间带有破折号的单词 t
  • 是否有一种*干净的*方法可以使只读依赖属性反映另一个属性的值?

    下面的代码是我当前的解决方案 我试图模仿的一个很好的例子是 FrameworkElement ActualWidth 属性 您知道每当 Width 属性更改 或重新绘制控件或其他任何时候 如何计算和重新分配 ActualWidth 属性吗
  • 访问令牌的“无效签名”错误(Azure Active Directory / msal js)

    我使用 MSAL JS 来验证用户身份 然后调用 acquireTokenPopup scopes 来获取访问令牌 我正在获取访问令牌 但无法按照其说明使用它签名无效 也在 jwt io 中检查过 同样的错误 在论坛上我发现这是由于 Gra
  • python 将多行转换为单行

    我想将 Python 多行字符串转换为单行 如果我在 Vim 中打开字符串 我可以在每行的开头看到 M 如何处理字符串以使其全部位于一行中 并在每行之间使用制表符分隔 Vim 中的示例如下所示 Serialnumber MName Rick
  • 获取C中的当前时间[重复]

    这个问题在这里已经有答案了 我想获取系统的当前时间 为此 我在 C 中使用以下代码 time t now struct tm mytime localtime now if strftime buffer sizeof buffer X m
  • 如何使用匹配节点连接两个 XML 文件

    我需要找到一种方法 当两个 XML 文件具有匹配的节点时将它们连接起来 据我所知 这可以用许多不同的语言来完成 是否有 PHP 或 AJAX 方法来做到这一点 从 SO 上的其他帖子中我看到了 XSLT 解决方案 但我并没有真正理解 这是最
  • .NET 从 HTML 页面中删除/剥离 JavaScript 和 CSS 代码块

    我有带有 JavaScript 和 CSS 代码块的 HTML 字符串 如何剥离这些块 关于可用于删除这些的正则表达式有什么建议吗 快速的 n 脏方法将是一个像这样的正则表达式
  • 如何使用 Javascript 对 HTML 文档进行永久更改?

    我有一个简单的计数器代码 但所做的更改消失了 页面刷新后 为什么会发生这种情况 应该使用 PHP 来完成吗 如何更有效地编写这段代码 无论如何 这不是主要问题 var like document getElementById like im
  • 在另一个页面中获取magento会话变量

    我在 magento 模式页面的会话中设置数组变量 并希望在另一个页面 如 getuserdata php 中检索 但不进入另一个页面 我设置变量并进入一页 然后完全检索 我的代码就像 首页代码 session Mage getSingle
  • 我们有 Perl 中的 autochomp 吗?

    这就是我的 Perl 代码的样子监控 Unix 文件夹 usr bin perl use strict use warnings use File Spec Functions my date date chomp date my date
  • XCode 5 中的配置文件

    我今天开始使用 XCode 5 并在尝试归档一个项目以进行临时分发时发现 我看到的配置文件不包括我最近创建的配置文件 但确实包括我已删除的配置文件 我检查了我的管理器中该设备的配置文件列表 该列表没问题 并且包含我最近下载的配置文件 所以我
  • c#:将网页的html源代码读取为字符串[重复]

    这个问题在这里已经有答案了 我希望能够使用 winforms 将某个网页的 html 源读入 C 中的字符串 我该怎么做呢 string html new WebClient DownloadString http twitter com
  • ASP.NET 主题样式表渲染

    当呈现具有主题的页面时 给定主题中的样式表链接标记将呈现在结束头标记之前 有谁知道有什么方法可以改变这种情况吗 有没有办法让我可以将这些标签放置在起始头标签之后 我知道它可以通过jquery关闭 只需选择所有链接标签并将其放置在起始头标签之
  • 如何在groovy中合并两个地图

    问题 如何合并映射 同时求和映射之间公共键的值 Input a 10 b 2 c 3 b 3 c 2 d 5 Output a 10 b 5 c 5 d 5 扩展问题 如何通过对 2 个映射中的公共键的值应用函数 闭包 来合并原始的 2 个
  • 解组时未找到类:android.support.v7.widget.Toolbar$SavedState

    我正在使用 Maps API 创建一个简单的 Android 应用程序 但出现了一个我无法解决的奇怪错误 当我旋转设备时通常会发生这种情况 我正在使用谷歌服务8 4 0 4 23 15 39 47 503 9419 9419 com lic
  • 在 Ubuntu C++ 上找不到 gtk/gtk.h

    我对编程相当陌生 尤其是在涉及如何包含库和类似活动时 我过去曾使用 Python 进行过一些编程 并且一直使用 GTK 来创建窗口 这也是我在使用 C 编程时打算做的事情 首先 这是我的代码 include
  • VsTac 任务失败,使用全局 Cordova 工具集时找不到文件 appAsTgz.tgz

    当我使用全局安装的 Cordova 7 1 0 工具集并执行 iOS 远程构建 到模拟器或本地设备 时 我几乎立即收到错误消息 Error MSB4018 The VsTac task failed unexpectedly System
  • 积分推广与运营商+=

    我需要消除 gcc Wconversion 警告 例如 typedef unsigned short uint16 t uint16 t a 1 uint16 t b 2 b a gives warning conversion to ui