我遇到了很多编译器警告:
评估常量时的范围检查错误
对于整个程序中的类似陈述。
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;