📄 hash_pub.h
字号:
#ifdef __cplusplus#if __cplusplusextern "C"{#endif #endif #ifndef __INC_HASH_PUB_H__#define __INC_HASH_PUB_H__#define MATCH_NOT_FOUND 0#define INSERT_PRIORTO 1#define INSERT_NEXTTO 2#define HASH_NODE_S DLL_NODE_S #define HASH_BUCKET_S DLL_Stypedef struct HASH_TABLE_S{ U32 ulHashSize; U32 (*pInsertFunc)(); U32 NodeNum; HASH_BUCKET_S HashList[1]; }HASH_TABLE_S;#define HASH_BUCKET_INIT DLL_Init#define HASH_ADD_NODE DLL_Add#define HASH_DELETE_NODE dll_delete#define HASH_INSERT_NODE dll_insert#define HASH_FIRST_NODE DLL_First#define HASH_LAST_NODE DLL_Last#define HASH_NEXT_NODE DLL_Next#define HASH_INIT_NODE DLL_Init_Node#define HASH_SCAN_BUCKET DLL_Scan#define HASH_Scan_Bucket(pHashTab,ulHashIndex,pNodePtr,TypeCast) \ HASH_SCAN_BUCKET(&(pHashTab)->HashList[(ulHashIndex)],(pNodePtr),TypeCast)#define HASH_Scan_Table(pHashTab,ulHashIndex) \ for((ulHashIndex) = 0; (ulHashIndex) < (pHashTab)->ulHashSize; (ulHashIndex) = (ulHashIndex) +1)#define HASH_Get_First_Bucket_Node(pHashTab,ulHashIndex) \ HASH_FIRST_NODE(&pHashTab->HashList[ulHashIndex]) #define HASH_Get_Next_Bucket_Node(pHashTab,ulHashIndex,pNode) \ HASH_NEXT_NODE(&pHashTab->HashList[ulHashIndex],pNode)#define HASH_Bucket_Count(pHashTab,ulHashIndex) \ DLL_Count(&((pHashTab)->HashList[(ulHashIndex)]))#define HASH_Bucket_FreeAll(pHashTab,ulHashIndex,fnFree) \ dll_free_all(&((pHashTab)->HashList[(ulHashIndex)]), fnFree) #define HASH_Init_Node(pNode) HASH_INIT_NODE(pNode)HASH_TABLE_S *hash_create_table (U32 ulHashSize, U32 (*pInsertFunc)());HASH_NODE_S *hash_find_node(HASH_TABLE_S *pHashTab, U32 ulIndex, VOID *pKey, S32 (*fnValCmp)(VOID *, HASH_NODE_S *));VOID hash_add_node (HASH_TABLE_S *pHashTab,HASH_NODE_S *pNode,U32 ulHashIndex,U8 *pu1InsertFuncParam);VOID hash_delete_node (HASH_TABLE_S *pHashTab,HASH_NODE_S *pNode,U32 ulHashIndex);VOID hash_delete_table (HASH_TABLE_S *pHashTab,VOID (*pFreeNodeMemFunc)(VOID *));VOID hash_walk_bucket (HASH_TABLE_S *pHashTab, U32 ulHashIndex, VOID (*fnVisit)(HASH_NODE_S *));VOID hash_walk_table (HASH_TABLE_S *pHashTab, VOID (*fnVisit)(HASH_NODE_S *));VOID hash_free_allbucket (HASH_TABLE_S *pHashTab, VOID (*pMemFreeFunc)(VOID *));#endif#ifdef __cplusplus#if __cplusplus}#endif #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -