Schnittstelle

Abgeleitet von den Anforerdungen wird eine Schnittstelle definiert. Diese sollte gut durchdacht werden, da eine Änderung der Schnittstelle zu einem Kompatibilitätsproblem führen kann. Dies hätte eine neue Versionsnummer zur Folge.

Einleitend orientiert sich die Schnittstelle an der, der Funktion qsort() aus der C-Standard Bibliothek:

void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))

Diese Schnittstelle wird um einen Rückgabewert erweitert, welcher Auskunft darüber geben soll ob die Funktion erfolgreich beendet wurde oder nicht. Weiter werden für die Parameter ansprechendere Namen gewählt.

int bubbleSort(void *base, size_t numberOfItems, size_t sizeOfItem, int (*compare)(void const *firstKey, void const *secondKey))

Die Namen der Parameter des übergebenen Funktionszeigers sind optional, trotz dem können sie einem Benutzer zusätzliche Informationen über die Verwendung liefern. Deshalb werden sie explizit benannt.