gpt4 book ai didi

c++ - 错误 : cast from 'const prog_uchar*' to 'byte' loses precision?

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:20 26 4
gpt4 key购买 nike

错误在这一行:

dataArray[iLedMatrix][iRow] |=  (byte)(bufferPattern[iRow]) & (1<<7);

dataArray 是:字节 dataArray[NUMBER_LED_MATRIX][NUMBER_ROW_PER_MATRIX];

bufferPattern 是:const patternp * bufferPattern;

patternp 是类型定义:typedef prog_uchar patternp[NUM_ROWS];

我可以在引用资料中看到 prog_uchar 是 1 个字节(0 到 255)。所以我不明白失去精度的错误?有什么想法吗?

最佳答案

问题出在这个子表达式中

(byte)(bufferPattern[iRow])

变量 bufferPattern 的类型为 const patternp *,因此当应用索引器时,结果为 patternp。类型“patternp”是 prog_uchar[] 的类型定义。所以实际上这个表达式是在说

Cast a prog_uchar* to a byte

Byte 几乎可以肯定是单字节值,prog_uchar* 是平台特定的指针类型(4 或 8 字节)。这确实会导致精度损失。也许你的意思是取消引用这个值?

(byte)(*(bufferPattern[iRow]))

关于c++ - 错误 : cast from 'const prog_uchar*' to 'byte' loses precision?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/761893/

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