Hi,
BOOL ist ein typedef aus alten C-Zeiten wo es noch kein C++ gab.
Ihr sollt euch net streiten um die Größe (So ein Schwachsinn! Wer hat den Größeren bool
)
Wie hoch die Mindestgröße in Bytes ist (1Bit fürn bool geht net! Denkt doch mal
richtignach!) und obs ein Typedef ist könnt hier hier sehen:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <iostream>
#include <windows.h>
int main (void)
{
std::cout << "Groesse von BOOL (typedef " << typeid(BOOL).name() << " BOOL;) betraegt " << sizeof(BOOL) << " Bytes." << std::endl;
std::cout << "Groesse von bool (typedef " << typeid(bool).name() << " bool;) betraegt " << sizeof(bool) << " Bytes." << std::endl;
std::cin.get();
return 0;
}
|
Ausgabe:
Groesse von BOOL (typedef signed int BOOL
betraegt 4 Bytes.
Groesse von bool (typedef bool bool
betraegt 1 Bytes.
Wie man sieht, bool ist ein buildin-type mit einer Mindestgröße von 1 Byte (Das bedeutet 8 Bit) während BOOL ein signed int mit einer Mindestgröße von 4 Bytes (Also mindestens 32 Bit).
Natürlich benutzt man bool und nicht mehr BOOL! Das selbe gillt für true/false mit TRUE/FALSE!
Achtung: Aus alten Spielen wie z.B. DukeNukem3D oder Descent1 war BOOL als unsigned char definiert.