hallo,
In den Microsoft Directx Beispielen ist
BOOL als int und TRUE=1 und FALSE=0
definiert. Hat das irgendeinen Vorteil? Vielleicht in Markos? Wird da nicht Speicher verschwendet?
Grüße Chris
hallo,
In den Microsoft Directx Beispielen ist
BOOL als int und TRUE=1 und FALSE=0
definiert. Hat das irgendeinen Vorteil? Vielleicht in Markos? Wird da nicht Speicher verschwendet?
Grüße Chris
Hallo,
In den Microsoft Directx Beispielen ist
BOOL als int und TRUE=1 und FALSE=0
definiert.
OK
Hat das irgendeinen Vorteil? (1)
Vielleicht in Markos? (2)
Wird da nicht Speicher verschwendet? (3)
Laut Vika bist Du Informatiker, wir
sollten also obige Fragen besser an Dich
stellen!
Grüße
CMБ
Moin,
Ich bin Informatiker, deshalb interessiert es mich ja auch.
Nun, ich würde kein int für ein bool verschwenden und da der Programmierer nichts dazu geschrieben hat, dachte ich, irgendwer-weiss-was. Sowas ist für Konsolenspiele schon wichtig.
Gruß Chris
Hallo Chris.
Ich bin mir mit der folgendenden Antwort nicht ganz sicher: Der Visual C Compiler hat früher (jetzt schon?) kein bool gekannt. Daher ist man den Umweg über defines gegangen.
mfg.
Servus.
Laut Vika bist Du Informatiker, wir
sollten also obige Fragen besser an Dich
stellen!
Und wenn jemand Architektur studiert, muss er dann jeden am Markt verfügbaren Beton bescheid wissen, und bei welcher Temperatur diese anfangen zu brökeln? Denn das Programmieren ist das Handwerkszeug der Informatik, allerdings nur ein Tropfen auf dem heißen Stein…
mfg.
Hallo Chris,
In den Microsoft Directx Beispielen ist
BOOL als int und TRUE=1 und FALSE=0
definiert. Hat das irgendeinen Vorteil? Vielleicht in Markos?
Visual BASIC benötigt auch 32 Bit für den Typ BOOLEAN.
Vorteile hat das nur für die Speicherhersteller
Wird da nicht Speicher verschwendet?
Klar, aber Microsoft hat noch nie etwas mit sparsamem Speicherverbrauch am Hut gehabt.
MfG Peter(TOO)
Hallo,
Nun, ich würde kein int für ein bool verschwenden und da der
Programmierer nichts dazu geschrieben hat, dachte ich,
irgendwer-weiss-was. Sowas ist für Konsolenspiele schon
wichtig.
Auf welcher Plattform arbeitest Du denn?
Seit dem Visual C/C+±5-Compiler gibt es
den „eingebauten“ bool mit einem Byte, siehe:
http://msdn2.microsoft.com/en-us/library/ms858377.aspx
In Visual C++4.2, the Standard C++ header files
contained a typedef that equated bool with int.
In Visual C++ 5.0 and later, bool is implemented
as a built-in type with a size of 1 byte. That means
that for Visual C++ 4.2, a call of sizeof(bool) yields
4, while in Visual C++ 5.0 and later, the same call
yields 1.
Die „ganz alten“ (WIN32 API) BOOL/TRUE/FALSE gab es
einfach deshalb, um eine gewisse zusätzliche
Information in den Quelltext einzubringen, nämlich
dass es sich um wahr/falsch handelt. Dazu nahm man
imho eine Maschinenwortgröße (16 od. 32 bit), um
zumindest keinen Geschwindigkeitsverlust bei Kon-
vertierungen zu haben.
Für sehr große Arrays hätte aber sowieso niemand
dieses BOOL genommen, sondern selbst eine Art
Bit-Block + Arrayabstraktion gebastelt.
BOOL als reine Argumente/Rückgabewerte sind jedoch
niemals „Platzverschwendung“, da in C/C++ Argumente
sowieso mindestens in Maschinenwortgröße übergeben/
zurückgegeben werden.
Grüße
CMБ