奇怪的 GCC 短 int 转换警告

2023-11-22

我有一些 C 代码,其内容如下:

short int fun16(void){
    short int a = 2;
    short int b = 2;
    return a+b;
}

当我尝试用 GCC 编译它时,我收到警告:

warning: conversion to 'short int' from 'int' may alter its value [-Wconversion]
  return a+b;
          ^

虽然没有明显的转换。两个操作数都很短,甚至返回值也很短。那么,有什么问题呢?


当您进行算术计算时,操作数需要进行“通常的算术转换”(引用中的“整数提升”的超集)阿克米的回答——他打败了我,但我还是会继续发帖:-))。这些拓宽了short int简单地int, so:

a + b

计算结果相同:

((int) a) + ((int) b)

The return然后声明必须缩小范围int to a short int,这就是 gcc 产生警告的地方。

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

奇怪的 GCC 短 int 转换警告 的相关文章

  • 如何使用C从http下载文件?

    最近几天我试图弄清楚如何从 URL 下载文件 这是我对套接字的第一个挑战 我用它来了解协议 所以我想在没有 cURL 库的情况下只用 C 语言来完成它 我搜索了很多 现在我可以打印页面的源代码 但我认为这与文件不同 我不必只将接收到的数据从
  • 如何从经过身份验证的 SecurityToken 中获取声明

    我将令牌作为字符串传递到 SOAP 服务中 并验证了该令牌是否有效 我现在有一个 SecurityToken 在调试模式下我可以看到所有声明 特别是我想传递到另一个方法的 userId 声明 我似乎不知道如何获得这些索赔 现在 我解码了令牌
  • 如何在 C# 中以编程方式将行添加到 DataGrid?

    正如标题所述 我正在尝试使用 C 以编程方式将行添加到 DataGrid 但我似乎无法使其工作 这是我到目前为止所拥有的 I have a DataGrid declared as dg in the XAML foreach string
  • 维护 VS Test Project 中单元测试方法之间的上下文

    我想按顺序运行以下单元测试 使用随机数字的名称 密码等创建新客户 检索刚刚创建的客户并断言其属性包含相同的随机数 对同一用户调用 ForgotPassword 函数 并使用相同的随机数作为用户名 清楚地看到 我需要生成一次随机数 并在 3
  • 重载算术运算符

    赋值运算符可以声明为 T 运算符 const t 在类中 但不能以这种方式定义算术运算符 它必须是友元函数 我不明白为什么 你能解释一下吗 算术运算符不必须是友元 那么你可以这样定义 MyClass MyClass operator con
  • X 轴和 Z 轴上的 Quaternion.Slerp,无 Y 轴

    I am trying to rotate the Player about X Y and Z axis The Y axis should not move from last angle Example if I rotate 45
  • 使用 STL 流时如何格式化我自己的对象?

    我想将我自己的对象输出到 STL 流 但具有自定义格式 我想出了这样的东西 但由于我之前从未使用过 locale 和 imbue 所以我不知道这是否有意义以及如何实现 MyFacet 和operator 所以我的问题是 这是否有意义以及如何
  • 如何在 C++ 中正确使用 cin.fail()

    我正在编写一个程序 从用户那里获取整数输入cin gt gt iUserSel 如果用户输入一个字母 程序就会进入无限循环 我试图用下面的代码来阻止这种情况 但程序进入无限循环并打印出 错误 输入 我该如何修复我的程序 cin gt gt
  • 更改私有模块片段是否会导致模块重新编译?

    On 此页面有关 C 20 模块功能 https www modernescpp com index php c 20 modules private module fragment and header units 我发现了这样的说法 借
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • C# 可以为控制台应用程序部分类“程序”类吗?

    我想知道是否可以将为任何控制台应用程序创建的默认 程序 类更改为部分类 我想这样做是因为我想要更好的组织 而不是将所有方法都放在按区域分类的 1 个文件中 对我来说 将某些方法类别放在单独的文件中会更有意义 我对分部类的理解是 它是多个文件
  • fgets溢出后如何清除输入缓冲区?

    当输入字符串超出其预定义限制时 我遇到了 fgets 的小问题 以下面的例子为例 for index 0 index lt max index printf Enter the d string index 1 if fgets input
  • 从单应性估计 R/T

    我一直在尝试计算 2 个图像中的特征 然后将这些特征传递回CameraParams R没有运气 特征已成功计算并匹配 但是问题是将它们传递回R t 我明白你必须分解Homography为了使这一点成为可能 我已经使用如下方法完成了 http
  • 具有多个父项的 Qt 树模型

    我想构建一棵树 其中一个元素可以引用另一个元素 我想要构建的树是 像这样的东西 A B C D E F P this is a pointer to C D first child of C E second child of C I fo
  • 让 Windows 尝试读取文件

    我正在对 Windows 文件系统进行某种封装 当用户请求打开文件时 Windows 调用我的驱动程序来提供数据 在正常操作中 驱动程序返回缓存的文件内容 但是 在某些情况下 实际文件没有缓存 我需要从网络下载它 问题是是否有可能让 Win
  • 尝试后终于没有被调用

    由于某种原因 在我的控制台应用程序中 我无法运行我的finally 块 我编写这段代码是为了测试finally块是如何工作的 所以它非常简单 static void Main int i 0 try int j 1 i Generate a
  • 使用通用存储库模式和流畅的 nHibernate

    我目前正在开发一个中型应用程序 它将访问不同站点上的 2 个或更多 SQL 数据库等 我正在考虑使用类似的东西 http mikehadlow blogspot com 2008 03 using irepository pattern w
  • java有类似C#的属性吗? [复制]

    这个问题在这里已经有答案了 C 属性 我的意思是 get 和 set 方法 是一个非常有用的功能 java 也有类似 C 的属性吗 我的意思是我们如何在 java 中实现类似以下 C 代码的内容 public string Name get
  • 如何将模型绑定到动态创建的类 nancyfx

    首先感谢任何愿意查看我的问题的人 我对 Nancyfx 还很陌生 在尝试将 JSON 有效负载绑定到动态创建的类时遇到问题 我按照这篇文章中的代码动态创建了该类 在C 中动态创建一个类 https stackoverflow com que
  • 使用空的weak_ptr作为参数调用map::count安全吗?

    打电话安全吗map count http www cplusplus com reference map map count on an 未初始化因此为空weak ptr http en cppreference com w cpp mem

随机推荐

  • 滚动时检测 RecyclerView 何时到达最底部位置

    我有 RecyclerView 的代码 recyclerView RecyclerView rootview findViewById R id fabric recyclerView recyclerView setLayoutManag
  • Eclipse 项目中缺少 Maven 依赖项

    我们用maven建立了一个项目来解决依赖关系 它通常工作正常 但现在我尝试在新 PC 上编译并运行它 但我遇到了 Eclipse 中缺少依赖项的问题 有趣的是 如果我在控制台或 Eclipse 中运行 mvn package 它工作正常 甚
  • 具有 API 的开源论坛

    有人对基于 PHP Python 或 J2EE 的网络论坛有什么建议吗 该论坛具有良好的 API 可以通过编程方式创建用户和论坛主题 phpBB第一个想到的就是开源 因为它是免费的 实际上 几乎所有论坛平台都有某种 api 您可以通过编程方
  • APC 与 PHP 5.4 或 PHP 5.5 兼容吗?

    APC 似乎没有更新以与 php 5 4 版本一致 我希望他们像最初计划的那样将 APC 包含在 PHP 核心中 对于当前 APC 是否适用于 php 5 4 我似乎找不到任何明确的答案 我设法找到 php 5 4 的 Ubuntu 软件包
  • 如何将 Angular JS 集成到 Grails 2.3.4 中?

    我正在运行grails 2 3 4并考虑将 angularjs 集成到我的下一个应用程序中 我认为从服务器端来说最好的方法是使用grailsREST域和控制器类中的集成 然而我被困在这里了 如何让 grails 与 angularjs 进行
  • 为什么从 int 到 float 的转换会对值进行四舍五入?

    我正在阅读 CS APP 关于演员阵容 它说在演员阵容时从int到float 数字不能溢出 但可能会被四舍五入 这对我来说很奇怪 因为我不知道要舍入什么 所以我尝试了一下 我认为这只适用于非常大的整数 接近INT MAX INT MIN 但
  • 从 Excel 文档中的代码隐藏访问 ActiveX 或 Form 对象(文本框)

    Excel 文件中有几个作为 ActiveX 对象的文本框 我想从代码隐藏中访问它们 我正在将 ClosedXML 用于其他领域 但我愿意接受其他建议 要从 C 访问 OLE 对象 请添加对 Microsoft Forms 2 0 对象库的
  • Caliburn.Micro。使用 Autofac 自动为 IHandle 实现者调用 eventaggregator.Subscribe()

    In Caliburn Micro作者的文档提到了这种可能性 文档链接 IHandle继承自标记接口IHandle 这允许使用强制转换来确定对象实例是否订阅任何事件 如果您与 IoC 容器集成 这可以实现简单的自动订阅 大多数 IoC 容器
  • 使用javascript将base64字符串转换为图像

    正在使用 Titanium 开发一个应用程序 我需要将从 JSON 获取的 Base64 字符串转换为图像 我们将非常感谢您的帮助 你可以只创建一个img元素并改变它的src与所需的数据 img src
  • 测试单个数值向量的所有元素之间的相等性

    我正在尝试测试向量的所有元素是否彼此相等 我提出的解决方案似乎有些迂回 都涉及检查length x lt c 1 2 3 4 5 6 1 FALSE y lt rep 2 times 7 TRUE With unique length un
  • 如何将 Paytm 钱包集成到 Android 应用程序中? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想将 Paytm 钱包集成到 Android 应用程序中作为支付选项 就像在 Uber 应用程序中一样 谁能帮我吗 提前致谢 Update Paytm 现已添加文档 https
  • iPhone 喜欢 WPF 项目中的红色徽章通知吗?

    I have a C WPF project which generates daily and weekly reports automatically I want to inform the user when new reports
  • 达特朗等待不止一个未来

    我想在未来的很多功能完成后做一些事情 但我不知道dart中的代码如何编写 代码是这样的 for var d in data d loadData then when all loaded do something here 但我不想一一等待
  • Ajax POST 方法将字符串中的“+”值转换为“”,为什么?

    我不明白为什么在 ajax 中 号会转换为 请解释一下 Use the encodeURIComponent 函数将您的数据转换为请求的有效编码数据 xhr open POST url true xhr send encodeURIComp
  • 使用 jmap(1.5) 从 java 核心转储中提取信息

    长话短说 一些同事正在运行一个相当旧的设置 x86 64 中的 oc4j jdk1 5 6 其应用程序恰好是关键任务 他们最近尝试部署应用程序的新版本 但一旦他们这样做 java 进程就会抛出核心转储并死掉 问题是 核心转储似乎没问题 gd
  • MVC 与 Web 应用程序的实际模式是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 造成混乱的原因是网上流传着
  • div、px、dpi 之间的关系

    如果在布局 xml 文件中 我将大小设置为 例如 12dip mdpi 中总是 12px hdpi 中总是 18px 吗 那么 dip 对于 mdpi 是否总是正确 并且对于其他密度也会相应地缩放 这个问题完全由官方文档 div px 和
  • 如何在 D2 (Phobos) 中获得单次击键?

    是否有一种简单的跨平台方法可以使用 Phobos 在 D2 中进行单次击键 例如 按任意键继续 提示 或者 Brainfuck 解释器 我尝试过的所有方法都需要在传递输入之前按 Enter 键 例如 getchar 在 Windows 上使
  • 运行循环结束——自动释放池恢复

    据我了解 一旦自动释放池被释放 自动释放的对象就会被清理 现在 自动释放池将在运行循环结束时释放 我的问题是 如果在我的类中我没有创建自定义自动释放池并对该类中的某些对象调用自动释放方法 那么这些对象在什么时候会被恢复 运行循环结束 是否意
  • 奇怪的 GCC 短 int 转换警告

    我有一些 C 代码 其内容如下 short int fun16 void short int a 2 short int b 2 return a b 当我尝试用 GCC 编译它时 我收到警告 warning conversion to s