C/C++ callback functions

Jeg har med jævne mellemrum brug for lave callbacks i C/C++, men kan aldrig rigtigt huske, hvordan det nu er, det skal laves.

 

Derfor er dette bare et simpelt eksempel hvordan det gøres, så jeg har et sted, at kopiere fra 🙂

#include <iostream>
#include <string>
using namespace std;

//
// Functions to be called as callback
//
static void printHelloWorld() {
	cout << "!!!Hello World!!!" << endl;
}

static void printHelloName(string name) {
	cout << "!!!Hello " << name << "!!!" << endl;
};

//
// Callback function
//
typedef void (*callbackFunction1_t)();
static void callbackFunction(callbackFunction1_t callbackFunction) {
	callbackFunction();
}



typedef void (*callbackFunction2_t)(string argument);
static void callbackFunction(callbackFunction2_t callbackFunction) {
	string name = "Flemming Jahn";
	callbackFunction(name);
}

//
// How to use the callback functions
//

int main() {
	while (1) {
		callbackFunction(printHelloWorld);
		callbackFunction(printHelloName);
	};
}

Leave a Reply

Your email address will not be published. Required fields are marked *