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

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