AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language plattformabhängigen Integertypen LongInt und LongWord
Thema durchsuchen
Ansicht
Themen-Optionen

plattformabhängigen Integertypen LongInt und LongWord

Ein Thema von himitsu · begonnen am 8. Jan 2018 · letzter Beitrag vom 9. Jan 2018
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#1

AW: plattformabhängigen Integertypen LongInt und LongWord

  Alt 9. Jan 2018, 07:03
Ich darf genüßlich auf die String vs. WideString/AnsiString Diskussion verweisen, die damals™ entbrannte, als Delphi "plötzlich" Unicode konnte. In Licht dieser Erfahrungen macht es keinen Sinn ungeprüftes Bitgeschiebe zu praktizieren, oder sich auf mögliche Überläufe zu verlassen. Man arbeitet als Entwickler nunmal nicht ohne Netz und doppelten Boden. Es gibt zu jedem dieser Typen die Möglichkeit, seine Bittigkeit zur Laufzeit zu ermitteln. Berücksichtigt man das, gibt es keine Probleme, wenn man die Standardtypen ohne spezifizierte Bittigkeit nimmt.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.211 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: plattformabhängigen Integertypen LongInt und LongWord

  Alt 9. Jan 2018, 09:19
Also ich verstehe ihn schon, Überläufe und Bitgeschubse möchte man unter Umständen schon gerne haben.

Wenn man immer auf allen Plattformen die gleichen Typen haben möchte braucht man ein Laufzeitsystem wie .NET oder Java. Delphi ist immer gerne "native", deshalb richten sich Standard-Typen der Delphi-RTL verständlicherweise nach der Plattform.

Möchte man (CRC ist ein gutes Beispiel) einen Typ mit Länge X muss man das auch sagen (Int32, UInt8, ...)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#3

AW: plattformabhängigen Integertypen LongInt und LongWord

  Alt 9. Jan 2018, 10:16
Ich habe nichts gegen Überläufe und Bitgeschupse. Aber bitte nicht ungeprüft. Überalls sonst wird man gemahnt die Grenzen eines Objekts aktiv zu beachten. zB bei Schleifen durch ein Array eben über Low(Array) bis High(Array) zu gehen und nicht blind etwa von 1 bis length(Array) oder ähnliches.

Hier muss man eben aktiv die "Bytigkeit" seines Integers beachten/prüfen/auswerten, um zu wissen, ab wann oder ob man es mit einem Überlauf zu tun haben könnte.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.549 Beiträge
 
Delphi 12 Athens
 
#4

AW: plattformabhängigen Integertypen LongInt und LongWord

  Alt 9. Jan 2018, 10:40
Hier muss man eben aktiv die "Bytigkeit" seines Integers beachten/prüfen/auswerten, um zu wissen, ab wann oder ob man es mit einem Überlauf zu tun haben könnte.
Und genau da lag ja mein Problem, dass sich eigentlich (ehemals) per Definition feste Typen nun plötzlich platformabhängig verhalten.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#5

AW: plattformabhängigen Integertypen LongInt und LongWord

  Alt 9. Jan 2018, 11:29
Ich verstehe ja durchaus Dein Problem, und kann Deine Verärgerung absolut nachvollziehen. Ich bin andererseits aber nie auf die Idee gekommen, nachzuschauen welche Typen jetzt festgemauert sind und welche nicht. Ich prüfe nach dem String-Debakel von 2009 bei solchen Sachen immer zur Laufzeit ob und wie die Rahmenbedingungen erfüllt sind. Ich muss allerdings noch erwähnen, daß ich keine Bitshifts oder so mache.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.211 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: plattformabhängigen Integertypen LongInt und LongWord

  Alt 9. Jan 2018, 11:45
Ich prüfe nach dem String-Debakel von 2009 bei solchen Sachen immer zur Laufzeit ob und wie die Rahmenbedingungen erfüllt sind.
Ich prüfe das in einem einzigen Unit-Test ob die Annahmen stimmen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.549 Beiträge
 
Delphi 12 Athens
 
#7

AW: plattformabhängigen Integertypen LongInt und LongWord

  Alt 9. Jan 2018, 12:04
Ich prüfe nach dem String-Debakel von 2009 bei solchen Sachen immer zur Laufzeit ob und wie die Rahmenbedingungen erfüllt sind.
Ich schreibe ja einige Komponenten, welche nach Möglichkeit auf allen Plattformen laufen sollen, mit dem Problem, dass ich aktuell kein Android mehr kompilieren kann.
Linux mir immer zu teuer sein wird und ich auch keine iProdukte habe.

Also muß ich ja erstmal blind darauf vertrauen, dass es so auch wo anders funktionieren könnte.


Ich nutze auch lieber Delphi/Pascal-Standard-Typen (wie eben LongInt) und versuche die Codes so zu schreiben, dass Compilerabhängiges auch compilerabhängig ist und Festes eben fest.
Da ist es jetzt kein Vorteil, wenn compilerabhängige Typen plötzlich fix sind und fixe Typen manchmal sich verändern.

Als 64 Bit raus kam, da stand auch in den Entwicklerhinweisen, dass der Integer nun fest ist, aber ich kann mich nicht erinnern sowas über den LongInt gelesen zu haben.
Sah es nur zufällig, als ich wegen was Anderem da rein sah und hoffte es könnte auch ein Fehler in der Hilfe sein.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 9. Jan 2018 um 12:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.549 Beiträge
 
Delphi 12 Athens
 
#8

AW: plattformabhängigen Integertypen LongInt und LongWord

  Alt 9. Jan 2018, 12:13
Ich prüfe das in einem einzigen Unit-Test ob die Annahmen stimmen
Für Dinge, wo man davon ausgeht, dass sie immer so sind, da schreibt selten jemand einen Test für.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:54 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