doxygen用にコメント修正。関数のstatic指定を外す
[YACASL2.git] / src / hash.c
1 #include "hash.h"
2
3 /**
4  * ハッシュ値を取得する
5  */
6 unsigned hash(int keyc, HKEY *keyv[], int tabsize)
7 {
8     int i;
9     char *p;
10     unsigned hashval = 0;
11
12     for(i = 0; i < keyc; i++) {
13         switch(keyv[i]->type) {
14         case CHARS:
15             for(p = keyv[i]->val.s; *p != '\0'; p++) {
16                 hashval = *p + 31 * hashval;
17             }
18             break;
19         case INT:
20             hashval = keyv[i]->val.i + 31 * hashval;
21             break;
22         default:
23             break;
24         }
25     }
26     return (hashval % tabsize);
27 }