工具/软件:TI C/C++编译器
您好!
我在用于 Mistral EVM3530板的 DVSDK 4.00.00.22 (xdctools 3.16.03.36)下开发 DSP 应用(C64x+)、我收到了有关 无符号整型(32位)的以下警告、但这不应出现、因为它是无符号整型
//与 CRC 相关
#define polynomial 0x1021
#define INinitial_remainder 0xFFFF
#define final_XOR_value 0x0000
#define width (8 * sizeof (width))(定义宽度(8 * sizeof (width))))
#define TOPBIT (1 <<(宽度- 1))
typedef unsigned long width;
typedef unsigned char 字节;
宽度 crcTable[256];
空 initcrc(void)
{
无符号短整型余数;
无符号短除数;//将16位 CRC 除以4位
INT 位;
对于(被除数= 0;被除数< 256;被除数++)
{
余数=除数<<(宽度- 8);
对于(位= 0;位< 8;位++)
{
if (余数和 TOPBIT) <--- 误差点
余数=(余数<< 1)^多项式;
其他
余数=余数<< 1;
}
crcTable[除数]=余数;
}
}
unsigned short calcurateCRC (unsigned char *消息、unsigned int nbytes)
{
unsigned int offset;
unsigned char 字节;
unsigned short remainder = inited_remainder;
对于(偏移= 0;偏移< nbytes;偏移++)
{
字节=(余数>>(宽度- 8))^消息[偏移量];
余数= crcTable[字节]^(余数<< 8);
}
返回(余数^ final_XOR_value);
}
unsigned short MakeCRC16 (unsigned char * sData、int iDataAgent)
{
unsigned short crc16;
initcrc();
crc16 = calcurateCRC (sData、iDataAgent);
返回(crc16);
}
我在 TI 论坛上搜索过它、但未找到答案。
为了避免这种错误警告、我应该怎么做? 如果存在此选项、是否应删除所有符号转换检查?
谢谢、
Lee