gpt4 book ai didi

c - 无法在 gcc 的算术表达式中将 size_t 类型转换为 unsigned Short

转载 作者:行者123 更新时间:2023-11-30 20:26:02 24 4
gpt4 key购买 nike

我正在开展一个将代码从 32 位迁移到 64 位的项目,其中我遇到一个问题,其中表达式包含 unsigned Shortsize_t 变量的混合以及结果值为无符号短整型。示例代码如下:

unsigned short foo = GETSOMEVALUE();
size_t bar = GETSOMEVALUE();
unsigned sort res = foo + bar;

在 gcc 64 位中编译此代码时,我收到警告

conversion to short unsigned int from "size_t" may alter its value

我在表达式中添加了(无符号短)的类型转换并对其进行了编译,并再次收到了警告

conversion to "short unsigned int" from "int" may alter its value

如何删除上述警告并保持变量类型不变?我的实际问题是 gcc 无法将 64 位类型转换为 16 位类型。这是一些编译器定义的问题,或者我做错了一些事情。

最佳答案

  1. [我不敢相信自己正在回答这个问题]
  2. [我不对任何后果负责]
  3. [使用此功能需要您自担风险]。

也许您想要的是带有 gcc-Wno-conversion 开关。

关于c - 无法在 gcc 的算术表达式中将 size_t 类型转换为 unsigned Short,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27059273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com