首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这是小弟我网上搜的一段计算校验和的代码,为什么会提示非法的间接寻址

2012-06-22 
这是我网上搜的一段计算校验和的代码,为什么会提示非法的间接寻址?unsigned short csum(unsigned char *ad

这是我网上搜的一段计算校验和的代码,为什么会提示非法的间接寻址?
unsigned short csum(unsigned char *addr, int count)
{
register long sum=0;
while(count >1)
{
sum+=*(unsigned short)addr++;
count-=2;
}
if (count>0)
sum+=*(unsigned char*)addr;
while(sum>>16)
sum=(sum & 0xffff)+(sum>>16);
return ~sum;
}



1>c:\documents and settings\administrator\桌面\test\test\testdlg.cpp(168) : error C2100: 非法的间接寻址


[解决办法]
IP校验和。

while(count >1)
{
sum+=*(unsigned short)addr++;
count-=2;
}

这一段明显错了,这是写了个毛,明明是把内存当做一堆short加和,这是写了个屁。

while (count > 1) {
sum += *(unsigned short*)addr;
addr += 2;
count -= 2;
}

热点排行