Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » BOOL

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
15.05.2006, 15:10 Uhr
~Gast
Gast


Hallo,

Gibt es einen unterschied zwischen dem Datentyp BOOL und bool?
Wenn ja welchen.

Danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.05.2006, 15:17 Uhr
~MartinF
Gast


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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.05.2006, 15:21 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


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"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.05.2006, 15:44 Uhr
ao

(Operator)



Zitat von ~Gast:
Gibt es einen unterschied zwischen dem Datentyp BOOL und bool?

bool ist ein Standard-Datentyp von C++.
BOOL ist kein Standard-Datentyp. Im WinAPI (nicht C++, sondern C) wird BOOL so definiert:

C++:
typedef int BOOL;

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.05.2006, 18:18 Uhr
xXx
Devil


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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.05.2006, 20:12 Uhr
~MarkusT
Gast


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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.05.2006, 21:25 Uhr
Pler
Einer von Vielen
(Operator)



Zitat:

ka warum das so in mode gekommen ist BOOL zu nehmen


Das hat ja ao schon geschrieben. BOOL hat die winapi schon in C definiert. Und da gibt's nun mal kein bool.

Nachtrag:
Ach so... Die WinApi halten wir mal schön aus ANSI C raus.

Dieser Post wurde am 15.05.2006 um 21:27 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
15.05.2006, 21:34 Uhr
~MarkusT
Gast



Zitat von Pler:
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> .
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
15.05.2006, 21:41 Uhr
Pler
Einer von Vielen
(Operator)



Zitat:

Jein, ISO C99 definiert den Typ bool in der <stdbool.h> .


Davon hab ich noch nie was gehört; scheint es aber tatsächlich zu geben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
15.05.2006, 22:15 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von ~MarkusT:

Zitat:
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: