Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   PLongint Frage (https://www.delphipraxis.net/209634-plongint-frage.html)

TurboMagic 3. Jan 2022 16:57

PLongint Frage
 
Hallo,

in einem Code den ich gerade in angepasster Form übernehmen möchte,
ist diese Typdeklaration enthalten:

Delphi-Quellcode:
PLong = ^longint;
Meine Überlegung war jetzt, dass es das doch auch schon in Delphi definiert geben müsste.
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:
PLongInt = ^LongInt;
Bin dabei auf diese DocWIki Seite gestoßen:
https://docwiki.embarcadero.com/Libr...ystem.PLongint

Nur: dort steht
Delphi-Quellcode:
PLongint = ^Integer;
In meinem Code den ich übernehmen will, wird der als PLong deklarierten Variable die Adresse
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

himitsu 3. Jan 2022 17:01

AW: PLongint Frage
 
PLongInt sollte es schon ewig geben (mindestens einstellige Delphis)

Delphi-Quellcode:
{$IF Declared(PLongInt)} 
type PLongInt = ^Integer;
{$IFEND}
Sowas gnge zwar auch, aber wäre hier eh bissl nutzlos, da LongInt schon lange vor den ConditionalDefines erfunden worden sein sollte.


Aber will man das PLong nicht umbenennen, dann halt
Delphi-Quellcode:
type PLong = PLongInt;
.
LONG ist ja das, was in Delphi LongInt heißt.

TurboMagic 3. Jan 2022 17:05

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?

himitsu 3. Jan 2022 17:08

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)

TurboMagic 3. Jan 2022 17:11

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?

himitsu 3. Jan 2022 17:14

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.

TurboMagic 3. Jan 2022 17:16

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?

himitsu 3. Jan 2022 17:19

AW: PLongint Frage
 
Es ist egal, wie es definitert ist, da ja Integer=LongInt.

Der schöne Günther 3. Jan 2022 17:51

AW: PLongint Frage
 
Doku für 10.4
und
Doku für 11

sagen beide

Delphi-Quellcode:
PLongInt     = ^LongInt;
Bei Longint ist die Größe abhängig vom System, siehe Doku:

https://docwiki.embarcadero.com/Libr...System.Longint

TurboMagic 3. Jan 2022 18:49

AW: PLongint Frage
 
For 10.1 sagte die Doku halt noch was anderes...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz