Christoph Zurnieden: While in C?

Beitrag lesen

Hi,

Standard hin oder her: Was du zitiert hast (nämlich die Definition einiger Makros), definiert noch keinen Datentyp.

Das ist die Definition des Datentypes _Bool. Der ist, genauso wie _Imaginary und _Complex neu in ISO-9899 von 1999.

Das Wichtigste hast du nämlich unterschlagen:
typedef enum {
   false = 0,
   true = 1
} _Bool;

Das finde ich aber nirgendwo im Standard. Wo hast Du das her?

»»as _ist_ ein eigener Datentyp (der aber zum Glück zuweisungskompatibel zu int ist).

Ja, das ist der Datentyp "enum" mit dem Namen "_Bool". Was hat das mit dem boolschen Datentyp _Bool aus ISO-9899 zu tun? Außer dem Namen?

[Kosten für ISO-Standards]

Stimmt, das ist tatsächlich unfair. ;)

Ja, etwas. Aber besser so als das irgendwelche Firmen das bezahlen. Man weiß ja, was dann dabei rauskommt.

Die nächstgelegene Universität mit IT-Abteilung sollte aber einen zur Einsicht rumliegen haben.
Mag sein. Aber das ist mir jetzt zuviel Aufstand.

Kann ich mir vorstellen, aber mir war es wirklich unangenehm konnte nur keine Alternative finden. Es ist aber so zumindest ohne große Kosten (je nachdem, wo Du wohnst natürlich, aber auf über 200 EUR Fahrtkosten bis zu nächsten Uni zu kommen schafft man normalerweise nur mit dem Taxi ;-) nachprüfbar ob ich korrekt zitiere.

Nein, es ist nicht dasselbe. Der erste Teilausdruck im ersten Beispiel ((u>0)==true) enthält nämlich genaugenommen schon zwei Vergleichsoperationen:

Das sind sogar drei Vergleichsoperationen.
(u>0)
(u>0)==true
((u>0)==true)

Deshalb wird sowas von vielen Compilern gleich wegoptimiert.

Ja, das ist ganz strenggenommen eine Optimierung, da hast Du natürlich Recht.

Schönes Wochenende erstmal,
Das dauert leider noch *sigh*

Ohje, mein Beileid. ;)

Ja, grins Du nur! Schadenfreude ist doch immer wieder die schönste Freude, was?  ;-)

so short

Christoph Zurnieden