Quack schrieb:
> Karl Heinz schrieb:
>> ist auch ein typischer Fall fürs selber ins Knie schiessen.
>
> Das schiesst in gar kein Knie. Explizit ausgeschriebene Vergleiche sind
> guter Stil, da lesbarer. Nachteile gibt es gar keine, ausser, dass es
> kein cooles C ist.
ACh
Du schreibst wohl auch
1 | if( ( i == 5 ) == true )
|
i == 5 ist ein boolscher Wert. Genauso wie LightOn im obigen Beispiel.
Du schreibst auch
1 | if( ( PINB & ( 1 << PB4 ) ) == ( 1 << PB4 ) )
|
weil es doch guter Stil ist, einen expliziten Vergleich zu schreiben,
obwohl er nicht nötig ist (und nur Fehlerpotential bietet)?
Was bitte ist an
nicht lesbar und warum wird es durch
1 | if( isKeyPressed() == true )
|
lesbarer?
Wie sagst du in Deutsch?
Sagst du: Wenn die Taste gedrückt ist
oder sagst du:
Wenn es wahr ist, dass die Taste gedrückt ist
1 | if( isKeyPressed() == true )
|
Die Fragestellung "Ist die Taste gedrückt?" ist für sich alleine schon
eine perfekte boolsche Abfrage. Die muss man nicht noch mal explizit auf
true oder false testen. Man gewinnt nichts dadurch, wenn man es tut. Man
kann es natürlich tun, aber in der Realität ist das einfach nur
zusätzliche Tipparbeit mit der Gefahr in diesem Zusatz Fehler einbauen
zu können.
Selbiges hier: Der Inhalt der Variablen LightOn ist die Antwort auf die
Fragestellung "Soll das Licht eingeschaltet sein?". Der Wert in der
Variablen (true oder false, wobei der Variablenname so gewählt wird,
dass er mit den möglichen 2 Werten in der Fragestellung korreliert) ist
bereits die perfekte boolsche Aussage. Ich seh wirklich keinen Grund,
warum man einen bereits boolschen Wert nochmal darauf überprüfen soll,
ob er true ist.