AVR32 eine Struktur mit switch identifizieren?

OP #1057559
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.