在本節中,我們將介紹在 libtabe 中所會使用到的幾個基本資料結構。 有些資料結構雖然只是其他資料形態的重新定義而已,不過, 為了不與 C 語言中的資料形態相混淆,我們還是使用這樣的方式。
typedef unsigned char *ZuYinSymbol; typedef unsigned char *ZuYinSymbolSequence; typedef unsigned int ZuYinIndex; typedef unsigned int ZhiCode; typedef unsigned char *Zhi; typedef unsigned char *ZhiStr; typedef unsigned long int Yin; struct ZhiInfo { ZhiCode code; Zhi chct; Yin yin[4]; unsigned long int refcount; /* should be obsoleted soon */ }; struct TsiInfo { ZhiStr tsi; unsigned long int refcount; unsigned long int yinnum; Yin *yindata; }; struct TsiYinInfo { Yin *yin ; unsigned long int yinlen; unsigned long int tsinum; ZhiStr tsidata; }; struct ChunkInfo { ZhiStr chunk; int num_tsi; struct TsiInfo *tsi; }; struct ChuInfo { ZhiStr chu; int num_chunk; struct ChunkInfo *chunk; }; struct TsiDB { int type; int flags; char *db_name; void *dbp; void *dbcp; . . . }; struct TsiYinDB { int type; int flags; char *db_name; void *dbp; void *dbcp; . . . };