Sobes.tech
Junior

Wat zijn callback-functies?

sobes.tech AI

Antwoord van AI

Functie die wordt doorgegeven aan een andere functie als argument. De aanroepende functie kan vervolgens de doorgegeven functie uitvoeren op een bepaald moment of bij een bepaalde gebeurtenis.

Toepassingen:

  • Gebeurtenisafhandeling (GUI, systeemgebeurtenissen)
  • Asynchrone operaties
  • Gedragsstrategieën
  • Algemene algoritmen

Voorbeeld:

C:

#include <stdio.h>

// Type pointer naar functie die een int accepteert en void retourneert
typedef void (*CallbackFunc)(int);

void do_something_with_callback(int value, CallbackFunc callback) {
    printf("Iets doen met de waarde: %d\n", value);
    if (callback != NULL) {
        callback(value); // Roep de callback functie aan
    }
}

void my_callback_function(int data) {
    printf("Callback functie uitgevoerd met waarde: %d\n", data);
}

int main() {
    do_something_with_callback(10, my_callback_function);
    do_something_with_callback(20, NULL); // Zonder callback functie
    return 0;
}

C++:

#include <iostream>
#include <functional> // Voor std::function

void do_something_with_callback(int value, std::function<void(int)> callback) {
    std::cout << "Iets doen met de waarde: " << value << std::endl;
    if (callback) { // Controleer of callback bestaat
        callback(value); // Roep callback aan
    }
}

void my_callback_function(int data) {
    std::cout << "Callback functie uitgevoerd met waarde: " << data << std::endl;
}

int main() {
    do_something_with_callback(10, my_callback_function);

    // Lambda functie als callback
    do_something_with_callback(20, [](int data) {
        std::cout << "Lambda callback uitgevoerd met waarde: " << data << std::endl;
    });

    do_something_with_callback(30, nullptr); // Zonder callback

    return 0;
}