![]() |
PLongint Frage
Hallo,
in einem Code den ich gerade in angepasster Form übernehmen möchte, ist diese Typdeklaration enthalten:
Delphi-Quellcode:
Meine Überlegung war jetzt, dass es das doch auch schon in Delphi definiert geben müsste.
PLong = ^longint;
Mein Code soll, anders als der Original Code der bis zu TP was weis ich kompatibel sein sollte, ab 10.1 Berlin funktionieren. Da ich das nicht installiert habe, habe ich versucht über das Docwiki rauszufinden, ob es dort schon diese aus 11.0 Alexandria bekannte Deklaration gibt:
Delphi-Quellcode:
Bin dabei auf diese DocWIki Seite gestoßen:
PLongInt = ^LongInt;
![]() Nur: dort steht
Delphi-Quellcode:
In meinem Code den ich übernehmen will, wird der als PLong deklarierten Variable die Adresse
PLongint = ^Integer;
des ersten Elements eines ARrays zugewiesen und später wird diese Variable auch mittels Inc inkrementiert. => Welchen ab mind. 10.1 Berlin vorhandenen Datentyp für diese Variable am besten benutzen? Grüße TurboMagic |
AW: PLongint Frage
PLongInt sollte es schon ewig geben (mindestens einstellige Delphis)
Delphi-Quellcode:
Sowas gnge zwar auch, aber wäre hier eh bissl nutzlos, da LongInt schon lange vor den ConditionalDefines erfunden worden sein sollte.
{$IF Declared(PLongInt)}
type PLongInt = ^Integer; {$IFEND} Aber will man das PLong nicht umbenennen, dann halt
Delphi-Quellcode:
.
type PLong = PLongInt;
LONG ist ja das, was in Delphi LongInt heißt. |
AW: PLongint Frage
Naja, aber weil das Docwiki von 10.1 Berlin das als ^integer darstellt (siehe den von mir geposteten Link)
bin ich mir nicht sicher ob das dann mit 64 bit Compilern so gut tut? |
AW: PLongint Frage
Achso.
Egal. (so lange du nicht für 16 Bit kompilieren willst ... Delphi 1 oder Turbo Pascal) Integer = LongInt Irgendwelche Arschlöcher kamen auf die saugeile Idee den Integer einzufrieren. Er wächst also nicht mehr bei 64 Bit. (dafür gibt es nun das NativeInt ... und vergessen wie es im C++ heißt) |
AW: PLongint Frage
Ich verstehe dich dann also so, dass EMBT einfach zwischen 10.1 Berlin und 11.0 ALexandria irgendwo
die Definition geändert hat, damit das auch der Namensgebung des Pointertypes entspricht, es aber code technisch keine Auswirkung hat. Richtig? |
AW: PLongint Frage
Nee, Intel und dergleichen waren Schuld, als sie die Spezifikation für 64-Bit-CPUs rausbrachten.
Microsoft machte es dann bei sich in seinem Compiler und Delphi mußte nachziehn (brauchte nur bissl länger dafür). Jupp, da identisch keine Auswirkung. "syntaktisch" ist es so "eigentlich" falsch, aber da es niemand bemerkt hat, blieb der Fehler im Delphi so. Der Pointer zu LongInt sollte natürlich aus LongInt gebildet werden, auch wenn Integer der "selbe" Typ ist. |
AW: PLongint Frage
Seufz!
Wollte eigentlich gerade nicht das ganz große Bild drumherum erklärt bekommen. Was ich wissen wollte ist, ob PLongInt so wie es in 10,1 definiert ist und in 11.0 dasselbe Ergebnis für meinen Code erzielen wird. Ich schätzte ja, oder? |
AW: PLongint Frage
Es ist egal, wie es definitert ist, da ja Integer=LongInt.
|
AW: PLongint Frage
![]() und ![]() sagen beide
Delphi-Quellcode:
Bei Longint ist die Größe abhängig vom System, siehe Doku:
PLongInt = ^LongInt;
![]() |
AW: PLongint Frage
For 10.1 sagte die Doku halt noch was anderes...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 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