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