BOOL versus bool

langer1801

Erfahrenes Mitglied
Was ist eigentlich der Unterschied zwischen den groß geschriebenen Versionen BOOL, FALSE, TRUE und den klein geschriebenen bool, false, true.
Im normalen Quelltext meckert der Compiler beim Mischen eigentlich nicht, Probleme gibt es erst beim Serialisieren, also Speichern und Laden. BOOL und bool läßt sich da nicht mehr mischen. Da kommt dann die Meldung "Unerwartetes Datei-Format". BOOL läßt sich auch speichern, bool nicht, wird auf int konvertiert. Na ja, kein Problem, läßt sich mit der richtigen Typ-Zuweisung lösen. Würde mich aber trotzdem interessieren, wo der Unterschied ist.

Mfg

langer
 
bool, false und true sind "richtige" Datentypen bzw werte.

BOOL, FALSE und TRUE sind Definitionen, dabei wird (meistens) BOOL als int deklariert,
FALSE als 0 und TRUE als 1.

Das hier:
Code:
BOOL x;
x = FALSE;
x = TRUE;
sieht also eigentlich so aus:
Code:
int x;
x = 0;
x = 1;

Wenn man das untere aber nehmen würde, weiß keiner was gemeint ist, daher nimmt man die obere Umschreibung.
Warum man das jetzt umschreibt, weiß ich auch nicht genau, ich denke aber mal das macht
man aus Portabilitätsgründen, falls man irgendwo mal das "echte" bool nicht verwenden kann.
 
Zurück