AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Vorsicht! statisches Array mit Startindex>0

Vorsicht! statisches Array mit Startindex>0

Ein Thema von Photoner · begonnen am 27. Feb 2015 · letzter Beitrag vom 1. Mär 2015
Antwort Antwort
Seite 2 von 2     12
Der schöne Günther

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

AW: Vorsicht! statisches Array mit Startindex>0

  Alt 27. Feb 2015, 17:36
Ich habe noch nicht einmal eine ungefähre Ahnung was euer Code machen soll, aber ich bin mir sicher etwas Assembler würde ihm noch den letzten Schliff verleihen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Vorsicht! statisches Array mit Startindex>0

  Alt 27. Feb 2015, 17:46
Wobei ich ein [1..255] bevorzuge, weil dann der Index synchron laufen kann.
ShortString

Und rate mal, was passiert, wenn du mal auf einen NextGen-Compiler triffst.
> String-Indize beginnen dort bei 0

Bzw. die neuen String-Helper indizieren immer mit 0 beginnend.


Viele Dinge wurden um 2006 durch die FastCodeLibrary ersetzet.
Wenn da auch Move dabei war (so wie z.B. die Move's im FastMM), dann ist das schon optimiert und kopiert auch schonmal mit 4 bis 16 Bytes pro Loop.

Assembler ist nicht immer besser, vorallem wenn man sich selber nicht mit den Cache- und Pfadvorhersagemechianismen der "aktuellen" Prozeduren auskennt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (27. Feb 2015 um 17:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Vorsicht! statisches Array mit Startindex>0

  Alt 28. Feb 2015, 10:34

Und rate mal, was passiert, wenn du mal auf einen NextGen-Compiler triffst.
> String-Indize beginnen dort bei 0
Na dann stellt man sich eben um, ein bischen Flexibilität hat noch keinem geschadet.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.223 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Vorsicht! statisches Array mit Startindex>0

  Alt 28. Feb 2015, 11:27

Und rate mal, was passiert, wenn du mal auf einen NextGen-Compiler triffst.
> String-Indize beginnen dort bei 0
Na dann stellt man sich eben um, ein bischen Flexibilität hat noch keinem geschadet.
Da nimmt man halt die String-Helper Methoden und man hat wieder einen Quellcode für beide Welten.
Statt Flexibilität muss man halt den Quellcode (nachdem er von Pascal 1 (?) bis XE8 (WinX/OSX) ohne änderung funktionieren würde) umstellen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Vorsicht! statisches Array mit Startindex>0

  Alt 27. Feb 2015, 12:55
Hier ein etwas kürzeres Beispiel:
Delphi-Quellcode:
program Project22;

{$APPTYPE CONSOLE}
uses System.SysUtils;

type
   TStaticArray = array[5..10] of Integer;

var
   meinArray:   TStaticArray;
   arrayIndex:   Integer;
begin
   for arrayIndex := -5 to 99 do
      WriteLn( meinArray[arrayIndex] );
end.
Ohne mich dem Spott anschließen zu wollen:

Ja, eigentlich sollte man immer mit Low() und High() arbeiten statt magische Zahlen hinzutippen.
Und ja, wenn man die Bereichsprüfung aus hat bekommt man zur Laufzeit keinen Fehler.

Aber man sollte trotzdem anmerken dass es wirklich etwas ernüchternd ist dass der Compiler für so etwas offensichtliches keine Warnung ausgeben kann.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.223 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Vorsicht! statisches Array mit Startindex>0

  Alt 27. Feb 2015, 12:58
Vieleicht ist das für viele eine olle Kamelle,
Ist es. Das ist ein feature der Sprache Pascal sowas zu können. Andere Sprachen können sowas nicht und deshalt macht man dort immer ein for 0 ... count-1 (Außgenommen jetzt moderne sprache wo man ein for-each-Schleife hat).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Vorsicht! statisches Array mit Startindex>0

  Alt 27. Feb 2015, 13:03
Doch, der Compiler/Programm kann "Exceptions" werfen, aber wenn du die Bereichsprüfung nicht aktivierst...
[edit] siehe Sir Rufo

Und dann natürlich die genannten For-In und Low-High.
Delphi-Quellcode:
for i in meinArray do
  WriteLn(i);
Dafür kennt Delphi keine leeren/undefinierten statischen Arrays ala array[0] und man sieht öfters mal ein array[0..0] , wo man es ja will, daß man über die 0 hinaus kann.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (27. Feb 2015 um 13:13 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:20 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