【发布时间】:2014-09-17 13:20:11
【问题描述】:
关于“过度移位值”Lint 警告的说明-
初始参数如下,
*#define SCC_BUFFERSIZE 0x80*
*uint16 DeviceConfigMsg[10];*
另请参阅下面的编码部分
**DeviceConfigMsg[0] = SCC_BUFFER_SIZE;*
*DeviceConfigMsg[1] = SCC_R_OK;*
*DeviceConfigMsg[2] = SCC_BUFFERSIZE & 0xFF;*
*DeviceConfigMsg[3] = (SCC_BUFFERSIZE>>8) & 0xFF;**
执行代码时,我收到最后一行的 lint 警告
****DeviceConfigMsg[3] = (SCC_BUFFERSIZE>>8) & 0xFF**** 如下。
警告 572:prio2:过度移位值(精度 8 右移 8)
我知道 0x80 SCC_BUFFERSIZE 的值可能会在以后更改。 所以请让我知道如何解决这个 lint 错误。 让我知道您是否需要我的任何其他输入。 我正在使用 GHS 编译器。
提前致谢,
JEEE
【问题讨论】:
-
不是说 0x80 是一个 8 位的值,所以向右移动 8 位总是会产生零值吗?
标签: lint