本文要解析的lcc字符串处理相关的代码,实际上不止是可以再lcc中使用,也可以单独摘出来用于需要的地方,里面的实现还是有不少可以借鉴的地方,废话不多少,代码上。
#include "c.h"
static char rcsid[] = "$Id: string.c,v 1.1 2002/08/28 23:12:46 drh Exp $";
static struct string {
char *str;
int len;
struct string *link;
} *buckets[1024];
/*256个随机数的静态数组*/
static int scatter[] = { /* map characters to random values */
2078917053, 143302914, 1027100827, 1953210302, 755253631,
2002600785, 1405390230, 45248011, 1099951567, 433832350,
2018585307, 438263339, 813528929, 1703199216, 618906479,
573714703, 766270699, 275680090, 1510320440, 1583583926,
1723401032, 1965443329, 1098183682, 1636505764, 980071615,
1011597961, 643279273, 1315461275, 157584038, 1069844923,
471560540, 89017443, 1213147837, 1498661368, 2042227746,
1968401469, 1353778505, 1300134328, 2013649480, 306246424,
1733966678,