In der Programmierung kommt es regelmäßig zu Situationen, in deinen eine Funktion als Parameter übergeben werden muss. Funktionen, die als Parameter zu einer Funktion übergeben werden, nennt man Callback-Funktionen. Typisch sind lang laufende Funktionen, die ihren Abschluss durch den Aufruf der Callback-Funktion signalisieren, sowie Sortierfunktionen, die eine angepasste Vergleichsfunktion bekommen können, um jede Art von Daten zu sortieren.

Beispiel:

#include <stdio.h>
#include <unistd.h>

typedef void (*CallbackFn_t)();

void long_running_function(CallbackFn_t callback)
{
    printf("Start sleeping ... ");
    fflush(stdout);
    sleep(3);
    printf("done\n");
    if (callback != NULL) {
        callback();
    }
}

void custom_callback_function()
{
    printf("This is my custom calback function.\n");
}

int main()
{
    printf("with callback:\n");
    long_running_function(&custom_callback_function);
    printf("without callback:\n");
    long_running_function(NULL);
    return 0;
}
Last modified: Friday, 1 June 2018, 12:40 PM