Probleme mit Switch/Case Abfrage

Gast #4569752
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 #4569754
Mir ist gerade aufgefallen, das ich einen Rechtschreibfehler hatte.

Nicht: starRec
Sonder: statRec

Warum die Arduino IDE da nichts sagt...

Trotz der Korrektur geht es immer noch nicht
Gast #4571276
> 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...
#4571598
Der : hinter dem Case verrät eigentlich schon, daß es sich um ein 
Sprung-Label handelt.
Daher ist es nur konsequent, wenn auch dahin gesprungen wird. Und 
vorhergehender Code läuft immer in ein Sprung-Label hinein.

Antwort schreiben

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