(NB: es ist reines C/Arduino).C Vorwärtsdeklaration
Ich habe Tonnen von Links meine Frage gefunden, aber niemand hat mir geantwortet.
Ich habe eine Datei "Effects.h
" und "Keyboard.h
".
"Keyboard.h
" benötigt, um "Effects.h
" einzuschließen. So „Effects.h
“ nicht enthalten „Keyboard.h
“
in „Effects.h
“ Ich habe diese drei Funktionen aus:
extern fnKeyPress effectDrops();
extern fnKeyPress effectLineRotate();
extern fnKeyPress effectRainbowCycle();
alle über einen Zeiger auf eine Funktion zurückgeben sollte, dass diese beiden Parameter verwendet: const KeyWithColor *, const struct KeyConfiguration *
Also das ich versuche zu tun:
typedef void (*fnKeyPress)(const KeyWithColor *, const struct KeyConfiguration *);
extern fnKeyPress effectDrops();
extern fnKeyPress effectLineRotate();
extern fnKeyPress effectRainbowCycle();
Aber ist nicht funktioniert, weil es sagen s:
Effects.h:32: error: 'KeyWithColor' does not name a type
typedef void (*fnKeyPress)(const KeyWithColor *, const struct KeyConfiguration *);
Was ist die Problemumgehung?
Sie müssen auch die Typen weiterleiten. –
@JoachimPileborg Vielen Dank für die "Idee", aber ich brauche konkretere Sachen ... darf ich Sie bitten, mir ein Beispiel zu geben? Vielen Dank –
Wenn Sie geeignete Include-Wächter hinzufügen, kann jede Datei jede andere Header-Datei in beliebiger Reihenfolge enthalten. –