[fpc-pascal] Delphi mode syntax error
    Jonas Maebe 
    jonas.maebe at elis.ugent.be
       
    Tue Jan 19 15:29:00 CET 2010
    
    
  
On 19 Jan 2010, at 15:14, Marco van de Voort wrote:
> Hmm, under delphi at least, it is cheaper to do
>
> var pstart,pend : PSomeType;
>
> if length(sometypedynarray)>0 then
>  begin
>    pstart:=@sometypedynarray[0];
>    peind :=@sometypedynarray[length(sometypedynarray)-1];
>    while (pstart<=peind) do
>      begin
>        operate_on(pstart);
>        inc(pstart);
>      end;
>  end;
>
> then for i over a dynarray, even if sometype is a simple type.
I can't imagine why that would be any faster than a simple for-loop,  
except for an implementation detail in the code generator or optimiser  
of the tested Delphi version(s) (or in case range checking is enabled  
-- but in that case using pointers to work around range checking would  
be strange). And it most certainly looks a lot worse than
for i:=0 to high(sometypedynarray) do
   operate_on(sometypedynarray[i]);
It would also surprise me if any speed difference that may exist were  
significant.
Jonas
    
    
More information about the fpc-pascal
mailing list