6.8. Stolpersteine
- Die Fehlerquelle schlechthin ist für C-Umsteiger die Verwechslung von Gleichheits- und Zuweisungsoperator. Die meisten Compiler geben allerdings eine entsprechende Warnung aus, sobald sich ein fehlplazierter Zuweisungsoperator in einem if-Ausdruck befindet.
- Setzen Sie kein Semikolon an das Ende einer if- oder else-Zeile. Dies führt je nach Konstellation entweder zu einer Fehlermeldung des Compilers oder zu einem unerwünschten Programmablauf.
- Wenn der Körper einer if-Anweisung mehrere Anweisungen enthält, dann müssen diese als Anweisungsblock geschrieben werden. Das Weglassen der geschweiften Klammern führt dazu, daß nur die erste Anweisung von der if-Bedingung abhängt; alle weiteren Anweisungen werden dann immer ausgeführt.
- Verwenden Sie logische Operatoren, um mehrere Vergleiche auf einmal vorzunehmen! Ausdrücke, die mehrere Vergleiche aneinanderreihen, sind zwar erlaubt, ihr Ergebnis ist aber selten brauchbar (siehe Abschnitt 6.2).
- Die Übersetzung eines alltagssprachlichen "und" bzw. "oder" in einen entsprechenden C-Operator führt oft zu unerwünschten Ergebnissen. Verwenden Sie daher &&, wenn beide Operanden wahr sein müssen, oder ||, wenn zumindest einer der beiden Operanden wahr sein soll.
- Sobald ein case-Wert mit dem Kontrollausdruck übereinstimmt, werden in switch-Konstruktionen die Anweisungen aller nachfolgenden case-Marken ausgeführt, sofern der break-Befehl fehlt bzw. vergessen wurde.
- In einer switch-Anweisung dürfen nur ganzzahlige Werte auf Gleichheit überprüft werden!