?? hash.h
字號:
/* Hash routine. Copyright (C) 1998 Kunihiro IshiguroThis file is part of GNU Zebra.GNU Zebra is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as publishedby the Free Software Foundation; either version 2, or (at youroption) any later version.GNU Zebra is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Zebra; see the file COPYING. If not, write to theFree Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA. */#ifndef _ZEBRA_HASH_H#define _ZEBRA_HASH_H/* Default hash table size. */ #define HASHTABSIZE 1024struct hash_backet{ /* Linked list. */ struct hash_backet *next; /* Hash key. */ unsigned int key; /* Data. */ void *data;};struct hash{ /* Hash backet. */ struct hash_backet **index; /* Hash table size. */ unsigned int size; /* Key make function. */ unsigned int (*hash_key) (); /* Data compare function. */ int (*hash_cmp) (); /* Backet alloc. */ unsigned long count;};struct hash *hash_create (unsigned int (*) (), int (*) ());struct hash *hash_create_size (unsigned int, unsigned int (*) (), int (*) ());void *hash_get (struct hash *, void *, void * (*) ());void *hash_alloc_intern (void *);void *hash_lookup (struct hash *, void *);void *hash_release (struct hash *, void *);void hash_iterate (struct hash *, void (*) (struct hash_backet *, void *), void *);void hash_clean (struct hash *, void (*) (void *));void hash_free (struct hash *);#endif /* _ZEBRA_HASH_H */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -