gpt4 book ai didi

linux - 计算常量时出现范围检查错误

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:45 25 4
gpt4 key购买 nike

我遇到了很多编译器警告:

计算常量时出现范围检查错误

在我的程序中出现类似的语句。

TxMsg 是一个字节。

GetRegs(0) 返回 WORD 数据类型结果。

TxMsg[0] := (GetRegs(0) shr 8) and $0F;

我在研究中发现这个错误是由隐式类型转换引起的,您需要将 int64 类型转换为 QWORD。如果是这样,那么你如何在我的代码行中做到这一点。

更新:

fRegs:SmallInt 数组[0..20];

TxMsg:字节数组[0..8];

function GetReg(reg:Integer):word;
begin
if reg <= RegCnt then
result:=fRegs[reg];
end;

最佳答案

你说涉及“字节”和“字”。两者都已经未签名,所以我不知道 int64 和 qword 与它有什么关系。

要抑制警告,只需将表达式的字结果硬转换为字节:

TxMsg[0] := byte((GetRegs(0) shr 8) and $0F);

关于linux - 计算常量时出现范围检查错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21679774/

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