AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Integer und Cardinal bei 32 Bit eingefroren? NativeInt?
Thema durchsuchen
Ansicht
Themen-Optionen

Integer und Cardinal bei 32 Bit eingefroren? NativeInt?

Ein Thema von Panthrax · begonnen am 5. Apr 2010 · letzter Beitrag vom 5. Apr 2010
 
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#1

Integer und Cardinal bei 32 Bit eingefroren? NativeInt?

  Alt 5. Apr 2010, 12:57
In älteren Quelltexten finde ich regelmäßig Zeigerarithmetik:
Delphi-Quellcode:
var
  Ptr: Pointer;
begin
  Inc(Integer(Ptr));
end;
Da für den Typ Pointer die Zeigerarithmetik nicht definiert ist, hat man sich in der Vergangenheit oft mit dem Typ Integer beholfen. Das funktioniert aber nur wenn SizeOf(Integer) = SizeOf(Pointer). Um darauf nicht angewiesen zu sein, stelle ich bei mir um, und verwende den Typ PByte, für den die Zeigerarithmetik definiert ist:Inc(PByte(Ptr)); Schaut man mal in die RTL oder VCL, wird dort mit den Typen Pointer und Integer freigiebig umgegangen. Vom Hörensagen her, wird der Typ Integer (und Cardinal?) 32 Bit lang bleiben (z.B. hier angesprochen). Das widerspricht in meinen Augen der Hilfe zu "einfachen Typen":
Zitat:
Es gibt zwei generische Integer-Typen: Integer und Cardinal. Diese Typen sollten, wenn möglich, immer verwendet werden, da sie die optimale Ausführungsgeschwindigkeit für die zugrunde liegende CPU und das Betriebssystem gewährleisten.
Wird auch Cardinal bei 32 Bit eingefroren?
Weiß vielleicht jemand, wo man etwas gegen diesen Blödsinn tun kann, Integer bei 32 Bit einzufrieren?

Ich denke an 32- oder 64-Bit-Programme vom selben Quelltext. Was nutzt ein 64-Bit-Kompiler, wenn die Datentypen nicht mitwachsen? Soll dann etwa überall auf NativeInt umgestellt werden!? Ich habe eigentlich noch genug von der Zwangsumstellung der Standardimplementierung von String und Char als Unicode. Wenigstens würde im Falle von Integer das hier gehen: Wenn die anderen nicht wollen, dass Integer mitwächst, ich will:
Delphi-Quellcode:
type
  Integer = type NativeInt;
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr.
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