Benutzerdefinierten enum-Typ-Deklaration mit Arduino
Ich habe einige Schwierigkeiten mit einer benutzerdefinierten enum-Typ in Arduino.
Habe ich gelesen anderswo, dass die Verwendung einer header-Datei, erforderlich für benutzerdefinierte type-Deklarationen, aufgrund der Arduino IDE Vorverarbeitung. So, das habe ich bereits getan, aber noch bin ich nicht in der Lage, um meine benutzerdefinierten Typ. Hier die relevanten Teile von meinem code in meiner main arduino-Datei (beacon.ino)
#include <beacon.h>
State state;
Und in beacon.h:
typedef enum {
menu,
output_on,
val_edit
} State;
Aber, wenn ich versuche zu kompilieren, bekomme ich folgende Fehlermeldung:
beacon:20: error: 'State' does not name a type
Ich davon aus, dass etwas falsch ist, wie ich geschrieben habe, oder meine header-Datei. Aber was?
- Wie wäre
typedef?
- Sie haben Typ-Fehler
typdef enum {
solltetypedef enum {
(fehlendee
im type
def) - Nur Frage mich, warum gab es nicht eine andere kompilieren Fehler?
- Äh, ja, die "typdef" war ein Tippfehler, wenn Sie Fragen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
beacon.h sollte wie folgt sein:
mit
Verlassen der typdef und entweder die nachfolgende Instanz von "state" aus, wie Sie instanziieren Sie in der main-INO-Datei, oder Umgekehrt. Wo die oben genannten beacon.h-Datei im Benutzer-Verzeichnis .\Arduino\libraries\Leuchtturm\ Verzeichnis und die IDE neu gestartet werden muss, um cache-seine Lage.
Aber man könnte einfach definieren und die Instanz, die es alle auf einmal in die INO
Beide kompilieren in Ordnung.
Können Sie auch Folgendes verwenden:
hier die Instanz ist unabhängig von der enum, so dass die enum nur ein typedef. Wo oben ist ein Beispiel und nicht typedef.