Der Martin: While in C?

Beitrag lesen

Hallo Christoph,

ich bin mir ja nicht ganz sicher, aber glaube, du versuchst uns einen Bären aufzubinden.

Aber selbstverständlich gibt es in C einen boolschen Datentypen. Aus ISO/IEC 9899: [...]

Ich behaupte: Nein.
Nur dadurch, dass die Konstanten true und false definiert werden, existiert noch lange kein eigenständiger Datentyp. Es gibt logische Operatoren (&&, ||, !), die Teilausdrücke als boolsche Werte interpretieren und ein dementsprechendes Ergebnis zurückliefern. Aber letztendlich geht das alles auf den Basistyp int zurück.

Erst C++ hat einen eigenen boolschen Datentyp.

... sollten die Werte von false und true an einer Stelle geprüft und/oder definiert werden, auf die man exklusiven Einfluß hat.

... oder stattdessen gleich die Werte 0 und 1 eingesetzt werden. Bei direkten Zuweisungen finde ich das genauso gut wie die Konstanten true oder false, und bei Berechnungen oder Vergleichsoperationen braucht man die Konstanten eh nicht, sie machen nur die Formulierung umständlicher.

Mich schüttelt's immer, wenn ich Ausdrücke lese wie z.B.
   if ( (u>0)==true && errorflag==false) ...

Warum schreibt man da nicht einfach und klar
   if ( u>0 && !errorflag) ...
Das ist kürzer, leicher lesbar, und sogar effizienter, wenn der Compiler den Code nicht sowieso schon optimiert.

Schönes Wochenende erstmal,

Martin