C Verständnisfrage

Gast
definiert ein enum
und darin offensichtlich die Zustände einer Statemachine:
INIT = 0
STANDBY = 1
RUN = 2
PROG = 3
WERKSEINSTELLUNG = 4
CHARGE = 5


ist äquivalent zu
#define INIT 0
#define STANDBY 1
...


enum ist aber die saubere Version, weil sich so die Werte praktisch 
selbst verwalten.

Eineindeutig müssen die Namen dennoch sein, wenn du also irgenwo anders 
noch z.B. ein "#define RUN 5" im Code stehen hast, knallt's.

BTW: besorg dir ein c-Buch, da wird das alles erklärt...
Gast
Thosch schrieb:
> definiert ein enum
> und darin offensichtlich die Zustände einer Statemachine:
> INIT = 0
> STANDBY = 1
> RUN = 2
> PROG = 3
> WERKSEINSTELLUNG = 4
> CHARGE = 5
>
> ist äquivalent zu
> #define INIT 0
> #define STANDBY 1


Verstanden! Vielen Dank! und wieso extern das muss doch nicht sein oder?
Gast
Wieso extern?
Weil nicht nur ein enum definiert wird, sondern auch gleich eine 
Variable e_state bekannt gemacht wird, die aber nicht in dieser 
"Übersetzungseinheit", sondern in einer anderen deklariert ist.
Gast
Bastler schrieb:
> Wieso extern?
> Weil nicht nur ein enum definiert wird, sondern auch gleich eine
> Variable e_state bekannt gemacht wird, die aber nicht in dieser
> "Übersetzungseinheit", sondern in einer anderen deklariert ist.

Wobei es ungeschickt ist, die Inhalt des enums anzuführen.

Ein
extern enum T_STATE e_State;
hätte gereicht.

Ändert sich die Definition des enums, musst du zwei Stellen ändern.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 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.