バージョンアップ
[YACASL2.git] / include / hash.h
1 #ifndef YACASL2_HASH_INCLUDED
2 #define YACASL2_HASH_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