⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hash.h

📁 魔兽2Linux版
💻 H
字号:
#ifndef ETLIB_HASH_H#define ETLIB_HASH_H#ifndef ETLIB_GENERIC_H#include <etlib/generic.h>#endifstruct hash_st{    int nelem;    int hashsize;    int maxdepth;    int middepth;};#ifdef _MSC_VERtypedef void hash_no_data;#elsetypedef struct { } hash_no_data;#endifextern void *_hash_get(const u8 *id, void *table, int size, int usize);extern const void *_hash_find(const u8 *id, const void *table, int size, int usize);extern void  _hash_del(const u8 *id, void *table, int size, int usize);extern void _hash_stat(void *table, int size, struct hash_st *stat_buffer);#ifdef __GNUC__			// { GNU feature#define hash_get(tab, id)	(typeof((tab).table[0]->user)*) \    _hash_get(id, (tab).table, NELEM((tab).table), sizeof((tab).table[0]->user))#define hash_find(tab, id)	(typeof((tab).table[0]->user)*) \    _hash_find(id,(tab).table, NELEM((tab).table), sizeof((tab).table[0]->user))#else				// }{ GNU feature#define hash_get(tab, id)	_hash_get(id, (tab).table, NELEM((tab).table), sizeof((tab).table[0]->user))#define hash_find(tab, id)	_hash_find(id,(tab).table, NELEM((tab).table), sizeof((tab).table[0]->user))#endif				// } !GNU feature#define hash_del(tab, id)	\    _hash_del(id, (tab).table, NELEM((tab).table), sizeof((tab).table[0]->user))#define hash_name(tab, sym) (((u8 *)sym) + sizeof((tab).table[0]->user) + 1)#define hash_stat(tab, st) _hash_stat((tab).table, NELEM((tab).table), st)#define hash_add(tab, id) hash_get(tab, id)#define hashtable(type, size) struct	\{					\    struct				\    {					\	void *left;			\	void *right;			\	type user;			\	u8 name[2];			\    } *table[size];			\}#endif /* ETLIB_HASH_H */

⌨️ 快捷键说明

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