Salve,
vorrei implementare una funzione hash di tipo folding ( si tratta di sommare alcuni gruppi di bit della chiave argomento della funzione nota:le chiavi sono int)).
Dato che l'unico modo che conosco per considerare i gruppi di bit e fare una struct del tipo

codice:
 
typedef struct number{
 unsigned p1:3;
 unsigned p2:4;
 unsigned p3:3;
 unsigned p4:6;
}number;
vorrei castare un int come number, sommarne quindi i campi e poi restituirne la somma, peccato che il compilatore non sia d'accordo.
Non capisco perchè dato che number è da 16 bit come anche gli unsigned int e gli int.
Qualcuno sa perchè o mi sa suggerire un metodo migliore per farlo?

Grazie dell'aiuto