Forum: Mikrocontroller und Digitale Elektronik AVRS5: uint8_t initialisieren nach case (Bug?)


von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Anbei ein Screenshot aus der AVR Studio 5 IDE. Mir ist jetzt schon 
mehrmals aufgefallen, dass der Compiler einen Fehler wirft, wenn man 
nach einer case-Auswertung eine Variable initialisieren möchte. Ist das 
vielleicht ein Bug, oder bin ich schlecht informiert?

Ausweg: Semikolon vor Initialisierung einfügen.
von Daniel (Gast)


Lesenswert?

Oh, ich sehe gerade, dass der Compiler mein Workaround missversteht. 
Also nicht nachmachen.
von Stefan E. (sternst)


Lesenswert?

Daniel schrieb:
> Ist das
> vielleicht ein Bug, oder bin ich schlecht informiert?

Ist ein Syntax-Fehler. Und die Fehlermeldung ist genau zutreffend. Ein 
Label muss vor einem Statement stehen, und eine Deklaration zählt nicht 
als Statement.

Daniel schrieb:
> Oh, ich sehe gerade, dass der Compiler mein Workaround missversteht.

So? Inwiefern?
von g457 (Gast)


Lesenswert?

Mach nen Block in den Case dann klappts auch mit dem Nachba^W^Hr 
Variable.

HTH
von Simon K. (simon) Benutzerseite


Lesenswert?

AFAIK reicht es auch den Compiler-Standard "hochzusetzen". Gnu99 z.B.
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Simon K. schrieb:
> AFAIK reicht es auch den Compiler-Standard "hochzusetzen". Gnu99 z.B.

Nein.  Die Antwort stand schon oben: ein label gehört vor ein
statement.  Eine Deklaration oder Definition jedoch ist kein
statement.  Ein neuer Block jedoch wäre eins, und am Anfang eines
Blocks sind Deklarationen und Definitionen immer zulässig (deren
Gültigkeitsbereich dann der Block selbst ist).
von Daniel (Gast)


Lesenswert?

Stefan Ernst schrieb:
> Daniel schrieb:
>> Oh, ich sehe gerade, dass der Compiler mein Workaround missversteht.
>
> So? Inwiefern?

Er färbt das Label blau ;-) Es ist natürlich mehr Intellisense als der 
Compiler, aber ich dachte mir, dass eine andere Farbe nicht gesund sein 
kann.

Danke für die Antworten. Ich muss in der Praxis immer wieder 
feststellen, dass die Vorlesungen in der Hochschule noch lange keinen 
Könner machen...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.