![]() |
Größe von generischen Typen?
Liste der Anhänge anzeigen (Anzahl: 1)
Alao, wein Windows sind ja diese Typen an die Prozessorarchitektur angepasst.
Bei 32-Bit sind das z.B.: INT = 4 Byte BOOL = 4 Byte Nur Delphi geht da einen anderen Weg: Integer/Cardinal... sind zwar auch 4 Byte groß, aber Boolean will da nicht mitmachen ... der ist seit Anfang an immer nur 1 Byte (in D1, D4, D5 und D7 getestet) Meine Compiler-Versions-Kontolle kann zwar diese Werte richtig auslesen, aber ich würde gern mal wissen, ob das nur bei Delphi so ist. (Sowas ist z.B. wichtig, wenn man mit der WinAPI, oder ähnlichem arbeiten will, da es dort stimmt es ja "immer") Also was machen da die anderen Compiler C und seine verschiedenen Varianten, besondes interessieren mich die anderen PascalCompiler FreePascal, Lazarus (oder wie der heißt) ... vorallem, wie ist das bei Delphi.net ... haben die da dieses "Problem" schon behoben? Also die Punkte vorwiegend interessieren mich demnach die Punkte "System Information" und "Size of..." in der Demo. PS: wer noch was zu den Versionen und deren Erkennung, der anderen Pascal-Compiler sagen kann ... über PN würde ich mich freuen ... ansonsten könnte diese Datei auch bald mal in die CodeLib ... unter OpenSource kommt die ja eh bald mit dem Rest nach draußen ^^ |
Re: Größe von generischen Typen?
In C/C++ ist der native Typ "bool" auch nur 1 Byte groß. Der 4 Byte große Typ "BOOL" ist einfach nur als "int" definiert.
Unter Delphi gibt es auch einen 4 Byte großen Bool, nämlich LongBool. |
Re: Größe von generischen Typen?
Hi,
hier mal die Werte für Delphi 2005.Win32 und .NET (falls es für Dich interessant ist) Win32: Zitat:
Zitat:
mfG mirage228 |
Re: Größe von generischen Typen?
ByteBool, WordBool, LongBool und LargeBool ... ist alles schon bekannt, mir geht es nur um die Gennerischen Typen, da bei diesen ja die Größe variieren kann und es auch abundzu tut (siehe Delphi 1)
Aber wie gesagt, diese kleine .inc kann das ja erkennen und ich kannkönnte demnach auch entsprechend Handeln, aber ich möchte halt gerne mal wissen, wie das anderswo auch noch aussieht. Und natürlich könnte ich LongBool verwenden, aber bei 16-Bit müßte man ja WordBool und bei dem (vermutlich bald kommenden) 64-Bit benötogt man demnach LargeBool, damit alles seine Richtigkeit hat. Und dass es bei C/C++ inen Unterschied zwischen bool und BOOL gibt wußte ich ja auch noch nicht ... also jetzt schon mal was gelernt ^^ Ich könnte ja morgen mal den ersten Teil meiner UCC hochladen, da ist eine Datei mit 'ner Zusammenstellung und Definition vieler Datentypen dabei ;) [add] @mirage228 Ist doch richtig so, denn in der Datei Steht ja, dass DELPHI_9 für "Borland Delphi 2005", DELPHI_9_up für "Borland Delphi 2005 und höher" und DELPHI_9_down für "Borland Delphi 2005 und niedriger" steht ^^ |
Re: Größe von generischen Typen?
Zitat:
Zu dem 'Problem' mit boolschen Typen: In den Windows-Headern gibt es noch BOOLEAN. Allgemein ist es dank fehlendem Präprozessor schwierig, in Delphi Language C-Typen in einem Quelltext ohne IFs abzubilden (und mitunter sehr aufwendig). |
Re: Größe von generischen Typen?
Also eigentlich müßte sich das ändern, da ja die Pointer auch nur als
Delphi-Quellcode:
definiert sind und im 64-Bit-System ja die Pointer auch 64-Bit sind - sonst könnte man ja die 2GB-Grenze nicht durchbrechen.
Type Pointer = Type Integer;
Außerdem sind diese Typen ja angeblich auf den Prozessor angepasst ... von der Geschwindigkeit her und so... Das mit den IFs ... ich hoffe ich liege jetzt nicht neben dem "Thema", aber notfalls könnte man ja sich entsprechende generische Typen selbst erstellen Irgendwo zentral einfach
Delphi-Quellcode:
Type genInteger = {$IFDEF 16_BIT} SmallInt {$ENDIF}
{$IFDEF 32_BIT} LongInt {$ENDIF} {$IFDEF 64_BIT} LargeInt {$ENDIF}; |
Re: Größe von generischen Typen?
Zitat:
Bei Microsoft bleibt der integrierte Typ 'int' bei 32-Bit, allerdings würde ich (rein theoretisch) davon ausgehen, dass ein Borland-Integer unter Win64 auch 64-Bit groß ist. Zitat:
...bin nicht sicher, ob ich damit nicht zuweit vom eigentlichen Thema abkomme. Ich wollte eigentlich nur darauf hinweisen, dass Portierung von Delphi-Quellen enorme Probleme aufwerfen kann. Gruß Nico |
Re: Größe von generischen Typen?
Zitat:
Zitat:
Darum hab ich ja auch solche Fragen, wie diese gestellt ... ich weiß ja nicht alles und irgenwie müßte ich ja dafür wissen, was wie arbeitet... |
Re: Größe von generischen Typen?
Zitat:
![]() Zitat:
|
Re: Größe von generischen Typen?
Achso ... na ja, ich erstelle meine (größtenteils) als OpenSource ... hat auch sine Gründe ... vorallem, damit auch Verbesserungen durch andere mit einfließen können.
|
Re: Größe von generischen Typen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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