Sobes.tech
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;
}