enum als Funktionsparameter

Gast #4189031
Lesenswert?
• ▲
▼
Mit enum definiere ich 3 mögliche Getriebestellungen
enum Getriebe {STOP, VOR, ZURUECK};
Sodann lege ich eine Variable vom Typ Getriebe an
enum Getriebe fahra = STOP;
woebei diese gleich auf den Wert 0 initialisiert wird.
Jetzt möchte ich einen Wert für die Variable fahra als
Parameter uebergeben

void Kriechgang (int_16t arg1, Getriebe arg2)
{V_soll = arg1;
 fahra = arg2;
}

Was mit arg1 vom Typ int_16t funzt meckert GCC bei
arg2 vom Typ Getriebe an:

Error expected declaration spezifiers or `...` before Getriebe
#4189123
Lesenswert?
• ▲
▼
Die Fehlermeldung ist eigentlich klar. Der Compiler meckert über das 
fehlende enum vor dem Getriebe Funktionsparameter. Entweder schreibst 
du:
1
void Kriechgang (int_16t arg1, enum Getriebe arg2)
Oder du benutzt, wie in C meist üblich, ein typdef um dir das schreiben 
von enum zu sparen (siehe Beitrag von 234897897676878844).

Ob man Typen mit _t am Ende schreibt ist wohl Geschmackssache. Zumindest 
bei allgemeinen Wörtern finde ich das _t nicht verkehrt, wie es etwa 
size_t schon vormacht. Weil ich size schon noch gerne als Variablenname 
irgendwo verwenden möchte.
Gast #4189225
Lesenswert?
• ▲
▼
Sebastian V. schrieb:
> Ob man Typen mit _t am Ende schreibt ist wohl Geschmackssache. Zumindest
> bei allgemeinen Wörtern finde ich das _t nicht verkehrt, wie es etwa
> size_t schon vormacht. Weil ich size schon noch gerne als Variablenname
> irgendwo verwenden möchte.

ich hab mir das mal angewöhnt bei eigens definierten datentypen
sei es struct , union , enum ein _t dahinterzuschreiben.

die IDE macht das dann auch grün im sinne von datentyp ..

wenn man das als einzelnen namen stehen lässt kann das 1-2 jahre später 
mitten im text für verwirrung sorgen
ein uint8_t erkennt man ja auch immer wieder

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.