Zeiger auf Funktion übergeben, aber wie?

OP #730006
Hallo,
ich habe eine Funktion
1
int ui8_vergleich(unsigned char a, unsigned char b)

, deren Zeiger ich gerne an eine weitere Funktion:
1
bubblesort(...)

übergeben möchte. Allerding krieg ich's nicht hin.

Meine Fragen:
Wie muß ich bubblesort(...) definieren, um den Zeiger auf eine Funktion 
wie int ui8_vergleich(...) zu übergeben?
Wie rufe ich die übergebene Funktion in bubblesort() auf?
Wie muß ich bubblesort() dann aufrufen?

Vielen Dank für eure Hilfe
Gruß
Boxi
OP
hm, stimmt, läuft. danke!

allerdings:
sinn der sache ist ja, dass ich auch mal funktionen mit anderen 
parametern an bubblesort übergeben möchte.

z.B. ui32_vergleich(unsigend long a, unsigned long b)

dann sind sicher einige harte casts anzuwenden.
weiß jemand, wie das geht?
Boxi Boxitec wrote:
> hm, stimmt, läuft. danke!
>
> allerdings:
> sinn der sache ist ja, dass ich auch mal funktionen mit anderen
> parametern an bubblesort übergeben möchte.

Schau dir an, wie qsort aus der Standardlibrary an das Problem
herangeht.
Das Stichwort lautet: void Zeiger.

Und ja: Du musst casten.
OP
ok, habe jetzt ein
1
bubblesort(int (*comp)(void *, void *))
2
{
3
  ...
4
}

und ein
1
int ui8_vergleich(void *a, void *b)

damit könnte ich auch ein
1
int ui32_vergleich(void *a, void *b)

die ich so
1
bubblesort(ui32_vergleich);
2
bubblesort(ui8_vergleich);

aufrufe, je nachdem welche datentypen ich verwende.
Danke an euch nochmal

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.