定义:
无符号短csum (unsigned char * addr, int数),
{,
/* ComputeInternet校验和的“数”“addr”字节开始位置。*/,
registerlong金额=0;,
,,
, (count>1),
{,
,,,/*这是内循环*/,
,,,和+=*(无符号短)addr + +;,
,,,数=2;,
},
,,
/*添加剩余的字节,如果任何*/,
如果(count> 0),,,//奇数字节,考虑CPU大端还是小端模式,
#如果BIG_ENDIAN,
和+=(* (unsigned char *) addr) & lt; & lt; 8;,
#,其他
和+=* (unsigned char *) addr;,
# endif,
,,
/* Fold32-bit和16位*/,
, (, sum>的在16),
,,,金额=(总和,0 xffff) +(和在祝辞16);,
,,
返回~总和;,
},