Christoph Zurnieden: While in C?

Beitrag lesen

Hi,

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

Es ist nur ein winziger Teil davon.
Zur Definition eines Datentyps gehört aber IMHO auch das "Wissen" des Compilers, wie er mit diesem Datentyp umzugehen hat.

Ist in den gängigen Compilern drin, dies Bedingung ist also auch erfüllt. Was brauchst Du noch, das es Dir schmeckt?

Also z.B. die Implementierung von Operatoren, ggf. Funktionen im Bezug auf diesen neuen Datentyp.

Alles was früher pseudo-bool war ist jetzt korrekt bool. Aufgrund von Abwärtskompatibilität ist die Definition jedoch so gewählt worden, das die alten Funktionen noch funktionieren.

In C++ [...]

Wir reden über C, das ist trotz aller Gemeinsamkeiten eine komplett andere Sprache.

Deshalb sagte ich, die Definition einiger Konstanten reicht noch nicht, um einen neuen Datentyp (mit eigenen Eigenschaften) zu definieren.

Nur weil es irgendwo nicht so eingebaut ist, wie Du es gerne haben möchtest ist es noch lange nicht falsch.

Das Wichtigste hast du nämlich unterschlagen:
typedef enum ...
Das finde ich aber nirgendwo im Standard. Wo hast Du das her?

Ich habe einfach Google nach stdbool.h gefragt

Das ist die Implementation, um genau zu sein die von OpenBSD. Der GCC (3.4.1 habe ich gerade zur Hand) definiert das z.B. als Macros:

#define bool    _Bool
#define true    1
#define false   0
[...]
#define __bool_true_false_are_defined   1

Aber was hat das mit dem Standard zu tun? Hauptsache ist, was hinten rauskommt, der Weg dahin ist jedoch vollkommen schnurz.

[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.

Naja, hier ist es noch akzeptabel, weil die IT-Standards idR keine rechtsverbindlichen Vorschriften sind.

Die ISO Standards sind es eigentlich schon, Deutschland hat da auch unterschrieben. Aber die Betonung liegt hier auf "eigentlich", da hast Du natürlich leider Recht.

Und hier finde ich es nicht in Ordnung, dass die Normungsgremien viel Geld für ihre Werke verlangen, die aber jeder einzuhalten hat.

Naja, die kann man wenigstens von der Steuer absetzen ;-)
(Konnte ich mit dem C-Standard aber auch, wenn auch etwas unwillig. Sonst hätte ich ihn auch nicht erworben, ich baue keine C-Compiler. Zumindest nicht regelmäßig)

so short

Christoph Zurnieden