Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
|
Re: Kurioser Compiler-Hinweis - logisch nicht nachvollziehba
28. Aug 2007, 19:48
0-basierter Index ist natürlich falsch, 0-basierter Offset wäre richtiger. Index ist absolut, Offset ist relativ.
Low(DynArray=nil) liefert 0 statt wie bei High(DynArray=nil) = -1, dafür gibt es einen Grund.
Die Abfrage
if (Index >= Low(Array)) and (Index <= High(Array)) then
ist eine Standardabfrage. Wenn High(DynArray=nil) = -1 ist und Index ebenfalls -1 wäre dann verhindert Low(DynArray)=0 das diese Abfrage zutrifft. Man kann also implizit mit dieser Abfrage auch den Index begrenzen, er kann wenn diese Abfrage TRUE liedert niemals < 0 sein, obwohl eben High(DynArray) -1 sein kann.
Gruß Hagen
|