C++ unterscheidet zwischen Groß- und Kleinschreibung. Dies gilt nicht nur für Variablennamen, sondern auch für alle anderen C++-Elemente wie Datentypen. Der Datentyp BOOL existiert nicht!
Code:
main.cpp:3: error: `BOOL' undeclared (first use this function) main.cpp:3: error: (Each undeclared identifier is reported only once for each function it appears in.)
Manche Implementierungen definieren Makros die diese Notation erlauben. Diese sind aber nicht standardkonform! Genau verwenden manche Libraries derartige Makros. Z.B. definiert Qt die Makros TRUE und FALSE.
je nachdem, wo du es gesehen hast, wird es eine Klasse gewesen sein(vielleicht sogar eine Wrapperklass zum Typ bool), die selbst geschrieben wurde -- perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
jo und das heißt unter anderem wenn du dir mal anguckst wieviel byte ein integer und wie viel ein boolischer Wert hat... Das heißt nix anderes als das es normaler weise sinnvoll ist bool zu nehmen... ka warum das so in mode gekommen ist BOOL zu nehmen
bool: 1byte | Kann ja nur true oder false sein... also 1 oder 0 int: 4byte | -2147483648 bis +2147483647
BOOL ist ein Windows Datentyp der wie schon erwähnt wurde als typedef int BOOL; definiert ist, nämlich in der Header WinDef.h. Nicht zu verwechseln mit dem in der Sprache C++ eingebauten Schlüsselwort bool. Aufgrund der Verwendung von WinAPI Funktionen sieht man allerdings oft den Windows Datentyp BOOL in Quellcodes stehen.
Zitat von xXx:
bool: 1byte | Kann ja nur true oder false sein... also 1 oder 0
Das ist so nicht ganz richtig . 1 Byte sind 8 BIT also 0-255 Möglichkeiten. 1 BIT bedeutet 0 oder 1 also false oder true. Richtig ist das bool 1 Byte umfasst. Das liegt daran das ein Speicher der Größe 1 Bit mit einem Zeiger oder einer Referenz nicht adressiert werden kann. Also nimmt man ein ganzes Byte. Das wird allerdings von C++ intern automatisch maskiert und kontrolliert.
BOOL hat die winapi schon in C definiert. Und da gibt's nun mal kein bool.
Jein, ISO C99 definiert den Typ bool in der <stdbool.h> .
Aber da Windows ja schon sehr lange vor dem C99 Standard erschienen ist hat man sich halt mit dem typedef geholfen.Dieser Post wurde am 15.05.2006 um 22:29 Uhr von FloSoft editiert.