#define MaxHashSize 32 typedef unsigned int HashVal; // extracts i'th bit from hash value #define bit(i,h) (((h) & (1 << (i))) >> (i)) // choice vector elems typedef struct { int attr, int bit } CVelem; typedef CVelem ChoiceVec[MaxHashSize]; // hash function for individual attributes HashVal hash_any(char *val) { ... }