Sobes.tech
Junior

What are callback functions?

sobes.tech AI

Answer from AI

A function that is passed to another function as an argument. The calling function can then execute the passed function at a specific moment or upon a certain event.

Applications:

  • Event handling (GUI, system events)
  • Asynchronous operations
  • Behavior strategies
  • Generic algorithms

Example:

C:

#include <stdio.h>

// Pointer type to a function that takes an int and returns void
typedef void (*CallbackFunc)(int);

void do_something_with_callback(int value, CallbackFunc callback) {
    printf("Doing something with value: %d\n", value);
    if (callback != NULL) {
        callback(value); // Call the callback function
    }
}

void my_callback_function(int data) {
    printf("Callback function executed with value: %d\n", data);
}

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

C++:

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

void do_something_with_callback(int value, std::function<void(int)> callback) {
    std::cout << "Doing something with value: " << value << std::endl;
    if (callback) { // Check for callback presence
        callback(value); // Call the callback function
    }
}

void my_callback_function(int data) {
    std::cout << "Callback function executed with value: " << data << std::endl;
}

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

    // Lambda function as callback
    do_something_with_callback(20, [](int data) {
        std::cout << "Lambda callback executed with value: " << data << std::endl;
    });

    do_something_with_callback(30, nullptr); // Without callback function

    return 0;
}