Na ovoj se stranici nalazi zbirka knjižnica koje će vam pomoći u programiranju u C. Knjižnice su ovdje otvorenog koda i koriste se za pomoć u pohrani podataka bez potrebe za povezivanjem vlastitog popisa i sl. Struktura podataka.
Razvio Troy D. Hanson, bilo koja C struktura može se pohraniti u tablicu hash-a koristeći uthash. Samo uključite #include "uthash.h", a zatim dodajte strukturu UT_hash_handle i odaberite jedno ili više polja u vašoj strukturi koja će poslužiti kao ključ. Zatim upotrijebite HASH_ADD_INT, HASH_FIND_INT i makronaredbe za spremanje, preuzimanje ili brisanje predmeta iz hash tablice. Koristi int, string i binarne ključeve.
Džudi je knjižnica C koja implementira rijetku dinamičku matricu. Džudi nizovi deklariraju se jednostavno s nulom pokazivač i troše memoriju samo kada su naseljeni. Po želji mogu rasti i svu raspoloživu memoriju. Ključne prednosti Judy su skalabilnost, visoke performanse i učinkovitost memorije. Može se koristiti za nizove dinamičke veličine, asocijativne matrice ili sučelje koje se jednostavno koristi i koje ne zahtijeva prerađivanje ili proširenje i može zamijeniti mnoge uobičajene strukture podataka, kao što su nizovi, rijetki nizovi, tablice hash-a, B-stabla, binarna stabla, linearni popisi, spiskovi za preskakanje, drugi algoritmi sortiranja i pretraživanja i brojanje funkcije.
SGLIB je kratka za Simple Generic Library i sastoji se od jedne datoteke zaglavlja sglib.h koja pruža generičku implementaciju najčešćih algoritama za nizove, popise, poredane popise i crveno-crna stabla. Knjižnica je generička i ne definira vlastite strukture podataka. Umjesto toga djeluje na postojeće korisničke strukture podataka putem generičkog sučelja. Također ne dodjeljuje ili ne dijeli nikakvu memoriju i ne ovisi o bilo kojem određenom upravljanju memorijom.
Svi algoritmi implementirani su u obliku makronaredbi koje su parametrirane prema vrsti strukture podataka i funkciji komparatora (ili makronaredbe komparatora). Za neke algoritme i strukture podataka možda će biti potrebno nekoliko daljnjih generičkih parametara, poput naziva polja „next“ za povezane popise.