Hallo Leute, Warum wird bei diesem Code so gezählt? VKH1 wird wie erwartet mit 1 addiert, aber VKH2 nicht mit 1 wie erwartet, sondern mit 2 addiert? int8_t VKH1=0, VKH2=0, if (Byte & (1 << Pos)) VKH1+=1; VKH2+=1; Kann mich jemand aufklären?? Gruß
Es fehlt vielleicht 'ne Klammer?! if (Byte & (1 << Pos)) { VKH1+=1; VKH2+=1; }
also wenn nur bei erfüllter if Abfrage gezählt werden soll, fehlen die Klammern meiner Meinung nach if (Byte & (1 << Pos)) { VKH1+=1; VKH2+=1; } in Deiner Version wird das erste += nur bei erfüllter if, das zweite aber immer ausgeführt. HTH, Lötnix
Das erklärt aber nicht, wieso VHK2+ mit 2 addiert wird...
>Das erklärt aber nicht, wieso VHK2+ mit 2 addiert wird...
Der Fehler steckt in Zeile 42.
Vielleicht wird er Code obe zweimal durchlaufen, aber nur einmal ist die
Bedingung wahr?
Fragen über Frage, aber ohne den vollständigen Code ist die Antwort
immer 42.
Oliver
Michael wrote: > Das erklärt aber nicht, wieso VHK2+ mit 2 addiert wird... > doch, denn du weist ja nicht, wie der Rest des Programmes (vor und nach der if-Abfrage) aussieht...
@michael:
> Das erklärt aber nicht, wieso VHK2+ mit 2 addiert wird...
glaubst Du an einen Bug im Compiler im Zusammenhang mit einer 1 bzw.
einer 2 im Variablennamen?
> Kann mich jemand aufklären??
Das mit den Bienen und Blüten ist so ....
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.