- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 17

Thema: Callback Funktion mit static function pointer

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #2
    shedepe
    Gast
    Um mal kurz in blaue zu Fragen: Was geht denn nicht? Macht das beantworten einfacher, dann muss man eventuell den Code nicht mal anschauen

    Prinzipiell hast du schon alles richtig gemacht. Du brauchst eine Statische Instanz des Callbacks. Da fehlt in der Cpp Datei noch

    void (*TrackControl::sendmidi)(byte) = 0

    eben weil es ja eine statische Variable sein soll.
    Weil die Syntax bisschen nervig wird auf Dauer verwendet man für Functionpointers gerne typedefs.
    Also z.B. in der Klasse drin:

    Code:
    typedef void (*sendmidi_fptr)(byte);
    static sendmidi_ftpr callback;
    
    und im cpp:
    TrackControl::sendmidi_ftpr TrackControl::callback = 0;
    Ansonsten ist die idee wie gesagt gut so:
    Man hat eine setCallback Funktion und ruft den wie du es gemacht hast eben auf.
    Ich würde vom Design her gerade bei Funktionspointern statische instanzen davon vermeiden, sondern lieber jeder Instanz den Pointer einzeln mitgeben. Das hat weniger Risiko für Nebenwirkungen wenn der Code mal komplexer wird.

    Edit was ich noch vergessen habe: Das funktioniert so nur für Funktionen die außerhalb einer Klasse sind bzw. statisch in einer Klasse sind. Willst du einen Funktionspointer auf eine Memberfunction übergeben kannst du das nicht mit einem klassischen Funktionspointer so ohne Probleme machen. Mit C++ am PC geht das am besten mit std::function. Es es das auch für arduino gibt weiß ich nicht.
    Geändert von shedepe (09.03.2018 um 22:10 Uhr)

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 17.02.2016, 20:09
  2. static inline ? warum static
    Von Siro im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 22.12.2010, 13:41
  3. Function Pointer - Verständnissproblem
    Von s.o. im Forum C - Programmierung (GCC u.a.)
    Antworten: 11
    Letzter Beitrag: 01.05.2008, 09:34
  4. Static int Problem
    Von Spongebob85 im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 19.01.2007, 23:25
  5. static beisst volatile
    Von StefPan im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 02.10.2006, 17:54

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test