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;
}