1 #ifndef YACASL2_HASH_H_INCLUDED
2 #define YACASL2_HASH_H_INCLUDED
3
4 /**
5 * @brief ハッシュ共用体の数値
6 */
7 typedef enum {
8 CHARS = 0, /**<char型のデータ */
9 INT = 1, /**<int型のデータ */
10 } UTYPE;
11
12 /**
13 * @brief ハッシュ共用体のデータ型
14 */
15 typedef struct {
16 UTYPE type; /**<ハッシュ値の元データのデータ型 */
17 union {
18 char *s; /**<char型のデータ */
19 int i; /**<int型のデータ */
20 } val; /**<ハッシュ値の元データ */
21 } HKEY;
22
23 /**
24 * @brief ハッシュ値を取得する
25 *
26 * @return ハッシュ値
27 *
28 * @param keyc キーの数
29 * @param *keyv[] キーを表す配列
30 * @param tabsize テーブルのサイズ
31 */
32 unsigned hash(int keyc, HKEY *keyv[], int tabsize);
33
34 #endif