Probleme mit Switch/Case Abfrage

Gast #4569752
Lesenswert?
• ▲
▼
Hallo,

ich arbeite zurzeit an einem "Protokol" für die Übertragung von 433Mhz 
Signalen, damit es geordnet ist (synchro zwischen Arduinos).

Problem zurzeit: Der Arduino führt bei einer Switch/Case Abfrage ein 
"case" durch, obwohl die Bedingung gar nicht stimmt... ?!
Er macht "case statRec", obwohl er das eig. nicht machen dürfte.

Programmcode im Anhang

Der Fehler tritt ab "case statId" auf, vorher nicht...

Ich würde mich freuen wenn mir einer helfen könnte, denn dieser, zurzeit 
kleine Fehler, könnte später zu einen großen Problem werden...

Viele Grüße

Simon
Angehängte Dateien:
Gast #4571276
Lesenswert?
• ▲
▼
> Schade dass die IDE das nicht überprüft...

Was soll überprüft werden?

Die *switch*-Kontrollstruktur ist in C/C++ nun mal so definiert dass 
v.o.n.u. beim ersten passenden case "eingestiegen" wird und 
anschliessend alles darunter ausgeführt wird, ausser es wird ein 
break angetroffen, dann wird die Kontrollstruktur beendet.

Hat man das Gefühl, switch sei sowas wie "1-aus-n" so liegt man 
falsch.

Man kann mit switch ein "1-aus-n" machen, wenn kein break 
vergessen geht. Jedoch kann kein Compiler/IDE/usw. erraten, wieviele 
breaks richtig sein sollen...

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.