X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fhash.h;h=caac5f181985fe66a757c3892f486720c9ecc5c9;hp=9821b44b70311859b33abc1d0d8006c6058ad0e8;hb=8ec48a2a7f650cd1eb4d782c0968d47ebaeebfec;hpb=e07b6371cc8a59c6793a895e968ff2c6cf28181b diff --git a/include/hash.h b/include/hash.h index 9821b44..caac5f1 100644 --- a/include/hash.h +++ b/include/hash.h @@ -1,6 +1,10 @@ #ifndef YACASL2_HASH_INCLUDED #define YACASL2_HASH_INCLUDED +#ifndef ARRAYSIZE +#define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0])) +#endif + /* ハッシュ共用体の型 */ typedef enum { CHARS = 0, @@ -16,6 +20,9 @@ typedef struct { } val; } HKEY; +/* ハッシュ表のサイズを決めるため、引数の数値未満で最大の素数を返す */ +int hashtabsize(int size); + /* ハッシュ値を取得する */ unsigned hash(int keyc, HKEY *keyv[], int tabsize);