Junior
Was sind Callback-Funktionen?
sobes.tech KI
Antwort von AI
Funktion, die an eine andere Funktion als Argument übergeben wird. Die aufrufende Funktion kann die übergebene Funktion zu einem bestimmten Zeitpunkt oder bei einem bestimmten Ereignis ausführen.
Anwendungen:
- Ereignisbehandlung (GUI, Systemereignisse)
- Asynchrone Operationen
- Verhaltensstrategien
- Allgemeine Algorithmen
Beispiel:
C:
#include <stdio.h>
// Funktionszeigertyp, der einen int akzeptiert und void zurückgibt
typedef void (*CallbackFunc)(int);
void do_something_with_callback(int value, CallbackFunc callback) {
printf("Etwas mit dem Wert machen: %d\n", value);
if (callback != NULL) {
callback(value); // Aufruf der Rückruffunktion
}
}
void my_callback_function(int data) {
printf("Rückruffunktion ausgeführt mit Wert: %d\n", data);
}
int main() {
do_something_with_callback(10, my_callback_function);
do_something_with_callback(20, NULL); // Ohne Rückruffunktion
return 0;
}
C++:
#include <iostream>
#include <functional> // Für std::function
void do_something_with_callback(int value, std::function<void(int)> callback) {
std::cout << "Etwas mit dem Wert machen: " << value << std::endl;
if (callback) { // Überprüfung auf Vorhandensein der Rückruffunktion
callback(value); // Aufruf der Rückruffunktion
}
}
void my_callback_function(int data) {
std::cout << "Rückruffunktion ausgeführt mit Wert: " << data << std::endl;
}
int main() {
do_something_with_callback(10, my_callback_function);
// Lambda-Funktion als Rückruf
do_something_with_callback(20, [](int data) {
std::cout << "Lambda-Rückruf ausgeführt mit Wert: " << data << std::endl;
});
do_something_with_callback(30, nullptr); // Ohne Rückruffunktion
return 0;
}