Der Martin: While in C?

Beitrag lesen

Hallo,

Nur dadurch, dass die Konstanten true und false definiert werden, existiert noch lange kein eigenständiger Datentyp.

Nein. Aber durch die Definition im Standard. Wie dieser Datentyp implementiert wird ist völlig irrelevant, wichtig ist nur, was der Standard dazu sagt. Und wenn der sagt "es gibt einen boolschen Datentyp", dann gibt es ihn.

Das hat Christoph mir auch schon beizubringen versucht, und es ist ja auch korrekt. Nur bin ich es gewöhnt, die Dinge eher von der praktischen Seite zu sehen. Wenn ihr sagt, der Datentyp _Bool sei im aktuellen Standard definiert, dann ist das fein, aber es ist erst einmal nur Theorie.

Wie der letztenendes im Compiler implementiert ist, ist dabei nicht wichtig.

Doch, das ist aus meiner Sicht das einzig entscheidende. Denn was nützt mir ein Standard, wenn meine Hardware, meine Software, mein Compiler ihn nicht unterstützt? In HTML/CSS sind auch jede Menge Raffinessen im Standard definiert, aber in kaum einem Browser implementiert. Also was hilft's? Für uns Anwender (Programmierer, Webdeveloper) ist entscheidend, was unsere Arbeits- und Hilfsmittel tatsächlich können. Dass sich die Hersteller dieser Arbeits- und Hilfsmittel bei Weiterentwicklungen an aktuelle Standards halten, setze ich voraus (trifft aber leider auch nicht immer zu).
Deswegen hab ich bei meinen vorherigen Postings zum Thema Boolscher Datentyp auch immer so auf der Implementierung beharrt.

Abgesehen davon benutze ich auch heute noch einen C-Compiler, der mittlerweile rund 10 Jahre alt ist (Borland C++ 5.02). Und ich möchte den gegen keinen anderen eintauschen, den ich in der Zwischenzeit kennengelernt habe. Und nein, BC5 kennt natürlich keinen Datentyp _Bool oder bool; ich halte den auch für völlig überflüssig. Ich selbst denke so maschinennah, dass ich den Unterschied für unbedeutend halte.
Und bevor mir jetzt wieder ein Musterprogrammierer ins Wort fällt: Selbstverständlich kenne und beachte ich den Unterschied in der Bedeutung. Aber in der Realisierung auf Maschinenebene sind die meisten elementaren Datentypen trotzdem ein und dasselbe. Sie auseinanderzuhalten möchte ich der Disziplin des Programmierers überlassen (der hoffentlich weiß, was er tut), nicht einer Typprüfung durch den Compiler. Ich krieg schon jedesmal "so'n Hals", wenn sich mein Compiler mal wieder beklagt "Warning: Mixing pointers to signed and unsigned char". Herrje, das weiß ich, und wenn ich das mache, dann mit Absicht. ;)

So long,

Martin