Junior
Geri çağrı fonksiyonları nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir fonksiyona argüman olarak geçirilen fonksiyon. Çağıran fonksiyon, belirli bir zamanda veya belirli bir olay gerçekleştiğinde geçirilen fonksiyonu çalıştırabilir.
Uygulamalar:
- Olay işleme (GUI, sistem olayları)
- Asenkron işlemler
- Davranış stratejileri
- Genel algoritmalar
Örnek:
C:
#include <stdio.h>
// int kabul eden ve void döndüren fonksiyon işaretçisi tipi
typedef void (*CallbackFunc)(int);
void do_something_with_callback(int value, CallbackFunc callback) {
printf("Değeriyle bir şey yapıyorum: %d\n", value);
if (callback != NULL) {
callback(value); // Geri çağrı fonksiyonunu çağır
}
}
void my_callback_function(int data) {
printf("Geri çağrı fonksiyonu, değerle çalıştı: %d\n", data);
}
int main() {
do_something_with_callback(10, my_callback_function);
do_something_with_callback(20, NULL); // Geri çağrı olmadan
return 0;
}
C++:
#include <iostream>
#include <functional> // std::function için
void do_something_with_callback(int value, std::function<void(int)> callback) {
std::cout << "Değerle bir şey yapıyorum: " << value << std::endl;
if (callback) { // Geri çağrı fonksiyonunun varlığını kontrol et
callback(value); // Geri çağrı fonksiyonunu çağır
}
}
void my_callback_function(int data) {
std::cout << "Geri çağrı fonksiyonu, değerle çalıştı: " << data << std::endl;
}
int main() {
do_something_with_callback(10, my_callback_function);
// Lambda fonksiyonu geri çağrı olarak
do_something_with_callback(20, [](int data) {
std::cout << "Lambda geri çağrısı, değerle çalıştı: " << data << std::endl;
});
do_something_with_callback(30, nullptr); // Geri çağrı olmadan
return 0;
}