Auf dieser Seite finden Sie eine Sammlung von Bibliotheken, die Sie beim Programmieren in C unterstützen. Bibliotheken sind Open Source-Bibliotheken und werden zum Speichern von Daten verwendet, ohne dass Sie Ihre eigenen Datenstrukturen für verknüpfte Listen usw. erstellen müssen.
Jede von Troy D. Hanson entwickelte C-Struktur kann mit uthash in einer Hash-Tabelle gespeichert werden. Fügen Sie einfach #include "uthash.h" ein, fügen Sie der Struktur ein UT_hash_handle hinzu und wählen Sie ein oder mehrere Felder in Ihrer Struktur aus, die als Schlüssel dienen sollen. Verwenden Sie dann HASH_ADD_INT, HASH_FIND_INT und Makros, um Elemente in der Hash-Tabelle zu speichern, abzurufen oder zu löschen. Es werden int-, string- und binäre Schlüssel verwendet.
Judy ist eine C-Bibliothek, die ein spärliches dynamisches Array implementiert. Judy-Arrays werden einfach mit einem Nullzeiger deklariert und belegen nur dann Speicher, wenn sie gefüllt sind. Sie können auf Wunsch den gesamten verfügbaren Speicher nutzen. Judys Hauptvorteile sind Skalierbarkeit, hohe Leistung und Speichereffizienz. Es kann für Arrays mit dynamischer Größe, für assoziative Arrays oder für eine einfach zu verwendende Schnittstelle verwendet werden, die keine Nacharbeit bei der Erweiterung oder Kontraktion erfordert, und viele gängige Datenstrukturen wie Arrays, spärliche Arrays, Hash-Tabellen, B-Bäume und Binärdaten ersetzen Bäume, lineare Listen, Skilisten, andere Sortier- und Suchalgorithmen und Zählfunktionen.
SGLIB ist die Abkürzung für Simple Generic Library und besteht aus einer einzelnen Header-Datei sglib.h, mit der die gängigsten Algorithmen für Arrays, Listen, sortierte Listen und rot-schwarze Bäume generisch implementiert werden. Die Bibliothek ist generisch und definiert keine eigenen Datenstrukturen. Vielmehr wird auf vorhandene benutzerdefinierte Datenstrukturen über eine generische Schnittstelle eingegriffen. Es wird auch kein Speicher zugewiesen oder freigegeben, und es ist keine bestimmte Speicherverwaltung erforderlich.
Alle Algorithmen werden in Form von Makros implementiert, die durch die Art der Datenstruktur und die Komparatorfunktion (oder das Komparatormakro) parametrisiert werden. Für einige Algorithmen und Datenstrukturen sind möglicherweise mehrere weitere generische Parameter erforderlich, z. B. der Name des nächsten Felds für verknüpfte Listen.