AVR32 eine Struktur mit switch identifizieren?

OP #1057559
Lesenswert?

Ich verwende als Vorlage für ein Menü: 
Beitrag "LCD - Menu".

Meine Frage ist folgende: gibt es einen eleganteren Weg in der exec-Fkt 
die Menüpunkte zu unterscheiden, als in der Struktur eine eindeutiges 
int Feld mittels enum anzulegen und später in der exec per switch case 
Aktionen zu starten?

Meine ursprügnliche Idee war: die Strukturen liegen im RAM und haben 
versch. Adressen. Der Compiler meckert aber wenn ich die Adresse der 
Struktur als switch Element verwenden möchte. Gibt evtl. eine Mögl. in 
der Richtung?
Gast #1058298
Lesenswert?

Zur Not kann man den Pointer auch nach int casten.
Du könntest statt Deiner extra ID aber auch einen Funktionspointer in 
Deine Struktur mit einbauen und darüber in exec_menu direkt die passende 
Funktion aufrufen. Dann sparst Du Dir das komplette Switch-Statement. 
(siehe Anhang)

CU
Angehängte Dateien:
OP #1058397
Lesenswert?

fbi wrote:
> Zur Not kann man den Pointer auch nach int casten.
> Du könntest statt Deiner extra ID aber auch einen Funktionspointer in
> Deine Struktur mit einbauen und darüber in exec_menu direkt die passende
> Funktion aufrufen. Dann sparst Du Dir das komplette Switch-Statement.
> (siehe Anhang)
>
> CU

Ah, das ist ne gute Idee, THX
Persönliche Seite #1060081
Lesenswert?

Das ist aber kein Grund. Wenn ein Menüpunkt nicht benötigt wird, dann 
wird der Code erstens dennoch gebraucht, und zweitests könntest du es 
nicht dynamisch nachladen (woher auch).

Ergo: Alle Menüpunkte werden initialisiert und die aktiv geschaltet, die 
gebraucht werden bzw. ein Menue verweist nur auf die Menüpunkte, die 
gerade aktiv sind.

Die Initialisierung macht man statisch.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren