2010-10-16 1 views
7

Ich denke an etwas wie glib, aber möglicherweise eine schlanke Version mit einem minimalen Fußabdruck. Es würde grundlegende Dienstprogramme wie verknüpfte Listen, Vektoren und Hash-Tabellen benötigen. Es sollte auch eine minimale Laufzeitfläche haben.Was wäre eine gute Open-Source-Lightweight-C-Bibliothek mit grundlegenden Dienstprogrammfunktionen in einem Embedded-System zu verwenden

+1

Wenn Ihr System wirklich strenge Anforderungen an die Codegröße erfüllt, ist die Verwendung von Allzweckabstraktionen für Datenstrukturen wahrscheinlich kein guter Ansatz. Oft kann eine Implementierung, die eng mit dem Rest der Datenstruktur und dem Code verbunden ist, viel kleiner und einfacher sein. –

+0

Hat das nicht wirklich viel doppelte Logik, wenn zum Beispiel mehrere Listen im System verwaltet werden? Ich neige dazu zu denken, dass eng gekoppelt in dem einen Fall helfen kann, oder selbst wenn die Logik nur ein paar Mal benötigt wird, aber irgendwann scheint eine allgemeine Implementierung angemessener zu sein, nicht wahr? Sonst wird die gleiche Logik immer wieder neu implementiert, was Platz verschwendet und fehleranfällig ist. – Kevin

Antwort

4

Nicht genau eine Bibliothek, aber ein getestetes, optimiertes und dokumentiertes Stück Code: sys/queue.h on * BSD- und Linux-Systeme haben Makros für verschiedene Arten von intrusiven verknüpften Listen und Warteschlangen.

+0

Wenn ich es überblicke, denke ich, dass das für meine Zwecke gut funktionieren würde. Vielen Dank. – Kevin

1

uthash ist eine nette Hash-Tabelle Bibliothek (komplett aus Makros), es kommt auch mit einer verknüpften Liste, dynamische Zeichenfolge und dynamische Array-Makros.

Ich empfehle auch sys/queue.h (vorgeschlagen von larsmans) für einfache und gut getestete verknüpfte Listen.