unsigned int strhash(const char* as) { register const unsigned char* s = (const unsigned char*)as; register unsigned int i = 0; register unsigned int c; while (c = *s++) HASHPART(i, c); return(i); }
unsigned long memsum(const void* ap, int n, register unsigned long c) { register const unsigned char* p = (const unsigned char*)ap; register const unsigned char* e = p + n; while (p < e) HASHPART(c, *p++); #if LONG_MAX > 2147483647 return(c & 0xffffffff); #else return(c); #endif }
unsigned long strsum(const char* as, register unsigned long c) { register const unsigned char* s = (const unsigned char*)as; register int n; while (n = *s++) HASHPART(c, n); #if LONG_MAX > 2147483647 return(c & 0xffffffff); #else return(c); #endif }