Und warum zum Henker sollte ich range checks ausschalten?
Aus Geschwindigkeitsgründen, jede Überprüfung kostet Zeit.
Was bis jetzt geschrieben wurde, ist noch alles harmlos, man kann auch Array negativ deklarieren.
Code: Alles auswählen
var
a0: array[-10.. -5] of byte;
a1: array[-10..5] of byte;
Wen man bei 0 beginnt hat man den Vorteil, der Zugriff ist immer gleich, egal ob die Array dynamisch oder statisch ist.
Wen man eine Array lokal in einer Procedure verwendet, dann ist es nicht so tragisch, wen sie nicht bei 0 beginnt, aber bei systemweiten Sachen ist es aber von Vorteil mit 0 zu beginnen.