Hallo,
ja, ich habe eine Frage zu den einfachen Datentypen
LongBool,
Bytebool und
WordBool. Mir ist der Sinn dieser Datentypen nicht klar.
In
Dietmars Tutorial steht dazu folgendes:
Zitat von
Dietmar:
Bei einem normalen Boolean ist es so, daß "True" den Ordinalwert "1" hat. Bei ByteBool, WordBool und LongBool hat "True" normalerweise den Ordinalwert "-1".
Einige Windows-
API-Aufrufe liefern ein Ergebnis vom Typ BOOL. Dabei gilt für den einen Fall "Ergebnis=0" und im anderen Fall "Ergebnis<>0". Ein Wert ungleich 0 muß aber nicht unbedingt 1 oder -1 sein! Das Ergebnis: die Variable ist bei <>0 möglicherweise weder true noch false!
In der Online Hilfe steht dazu:
Zitat von
OH:
Es gibt vier vordefinierte Boolesche Typen: Boolean, ByteBool, WordBool und LongBool. In der Praxis wird in erster Linie der Typ Boolean verwendet. Die anderen Typen dienen der Kompatibilität zu anderen Sprachen und Betriebssystembibliotheken.
Eine Boolean-Variable belegt ebenso wie eine ByteBool-Variable ein Byte Speicherplatz. Eine WordBool-Variable belegt zwei (ein Word) und eine LongBool-Variable vier Bytes (zwei Word).
Einmal ganz konkret: Wofür benötigt man diese Datentypen?
Möchte ich Wahrheitswerte haben, reicht mir ein normaler
Boolean, der mir
true / false (
0 / 1) bereitstellt, was 1 Byte Speicherplatz belegt. Wieso soll ich für einen Boolean dann 2 oder sogar stolze 4 Byte, also 4 mal so viel Speicherplatz, belegen lassen? Möchte ich andere Werte als
true und
false dann greife ich sicher nicht auf einen boolschen Datentyp zu, sondern nehme
Byte oder ähnliches.
Klärt mich bitte auf. Eigentlich gehört das ja zu den Delphi Grundlagen, nur konnte ich nirgendwo den Sinn und Zweck dieser Datentypen finden.
Insbesondere das hier:
Zitat von
OH:
Die anderen Typen dienen der Kompatibilität zu anderen Sprachen und Betriebssystembibliotheken.
Ist mir unklar. Wieso gibt es generell andere boolsche Datentypen?