![]() |
Aufzählungstypen in Delphi
Hallo Dpler :)
kann man Delphi sagen, dass es Aufzählungstypen intern als Integer anlegen soll? Denn in dem Beispiel legt er es als Byte (sizeof(TWert) liefert 1) an.
Delphi-Quellcode:
Da dies bei mir aber ein Teil in einem komplexeren Typ ist, den ich genauso in C++ brauch und Aufzählungstypen in C++ generell als Integer angelegt werden stimmen die Größen der beiden Strukturen nicht überein.
TWert = (Wert1=0, Wert2=1, Wert3=2);
Habt ihr eine Idee? Mir würde nur ein array of integer einfallen der im Programm ablauf mit Konstanten gefüllt wird. |
Re: Aufzählungstypen in Delphi
{$MINENUMSIZE 4} oder {$Z4} oder {$Z+}
> [oh]$MINENUMSIZE[/oh] bzw. [oh]$Z[/oh] [add] oder du machst einfach einen Dummy ans Ende :angel2:
Code:
PS: dieses =0, =1 usw. brauchst'e in Delphi nicht angeben, jedenfalls wenn bei 0 begonnen und Fortlaufend gezählt wird.
TWert = (Wert1=0, Wert2=1, Wert3=2, [color=#ff0000]_dummy=31[/color]);
Code:
TWert = (Wert1, Wert2, Wert3, [color=#ff0000]_dummy=31[/color]);
|
Re: Aufzählungstypen in Delphi
Danke dir! Hab mich für ersteres entschieden. Sieht sauberer aus ;)
Schade das VC++ kein #pragma enum (1) kann. Damit würde ich sicherlich ne Menge Speicher sparen^^ Edit: das mit =... hatte ich gemacht weil ich schon probiert hatte ob Delphi den Bereich automatisch erweitert ;) |
Re: Aufzählungstypen in Delphi
Zitat:
Verstehe ich nicht :roll: |
Re: Aufzählungstypen in Delphi
naja man müsste sicherlich die Zahl größer wählen, aber es ist ja klar was er damit meint...
|
Re: Aufzählungstypen in Delphi
Aha, also dann wohl mindesten _dummy=256
|
Re: Aufzählungstypen in Delphi
wird auch nich reichen^^ da muss schon was her was richtig in den Integer Bereich geht und kleinere Typen ausschließt...
|
Re: Aufzählungstypen in Delphi
Ach ja, das ist dann ja erst mal der Typ Word mit 16 bit.
Aber bei 65536 wären wir dann bei 32 bit angekommen. |
Re: Aufzählungstypen in Delphi
ach stimmt 4294967295 ... war wohl irgendwie bei 'nem Set hängen geblieben :wall:
ansonsten einfach den passenden Kompilerschalter verwenden :stupid: |
Re: Aufzählungstypen in Delphi
Dafür gibt es auch die Konstante
Delphi-Quellcode:
MaxInt
Delphi-Quellcode:
würde wahrscheinlich auch noch gehen.
High(integer)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz