uthash 2.1.0 Hash tables, lists, and other data structures implemented as C macros

uthash implements a hash table and a few other basic data structures as C preprocessor macros. It aims to be minimalistic and efficient: it's around 1,000 lines of code which, being macros, inline automatically.

Unlike function calls with fixed prototypes, macros operate on untyped arguments. Thus, they are able to work with any type of structure and key. Any C structure can be stored in a hash table by adding UT_hash_handle to the structure and choosing one or more fields to act as the key.