checksum.c

来自「Net-CDP-0.09 cdp相关源包」· C语言 代码 · 共 28 行

C
28
字号
/* * $Id: checksum.c,v 1.1 2005/07/20 13:44:13 mchapman Exp $ */#include <system.h>/* * Actually, this is the standard IP checksum algorithm. */uint16_tcdp_checksum(const unsigned short *data, size_t length) {	register long sum = 0;	register const uint16_t *d = (const uint16_t *)data;	assert(data);	while (length > 1) {		sum += *d++;		length -= 2;	}	if (length)		sum += htons(*(const uint8_t *)d);		sum = (sum >> 16) + (sum & 0xffff);	sum += (sum >> 16);	return (uint16_t)~sum;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?