Wie implementiert man das Listener Pattern in C oder C++?

In C:

In C verwendet man typischerweise Funktionszeiger:

typedef void (*EventListener)(int data);

void registerListener(EventListener listener);
void notifyListeners(int data);

In C++:

In C++ kann man Interfaces oder Funktoren verwenden:

class EventListener {
public:
    virtual void onEvent(int data) = 0;
};

void registerListener(EventListener* listener);
void notifyListeners(int data);

Wichtig für Embedded-Systeme: Vermeide dynamische Speicherallokierung und verwalte Listener statisch oder über Puffer mit fester Größe.

com

Newsletter Anmeldung

Bleiben Sie informiert! Wir informieren Sie über alle neuen Beiträge (max. 1 Mail pro Woche – versprochen)