c / intermediate
Snippet
Dynamischer Dispatch via Funktionszeiger
Funktionszeiger ermöglichen es, Funktionen als Argumente zu übergeben, was dynamisches Verhalten zur Laufzeit (Callbacks) erlaubt.
snippet.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>void add(int a, int b) { printf("Sum: %d\n", a + b); }void subtract(int a, int b) { printf("Diff: %d\n", a - b); }void execute(void (*op)(int, int), int x, int y) {op(x, y);}int main() {void (*operation)(int, int) = add;execute(operation, 10, 5);operation = subtract;execute(operation, 10, 5);return 0;}
Erklärung
1
void (*op)(int, int)
Deklariert einen Zeiger auf eine Funktion, die zwei Ints nimmt und void zurückgibt.
2
op(x, y);
Ruft die Funktion auf, auf die 'op' aktuell zeigt.