[fpc-devel] Semicolon before else

Jonas Maebe jonas.maebe at elis.ugent.be
Fri Jan 29 16:22:16 CET 2010


On 29 Jan 2010, at 16:12, Aleksa Todorovic wrote:

>>
>> Depends. I do see a minor point for e.g. ++ and --, since I have  
>> been bitten
>> by that when translating e.g. compression code (paszlib, lz77) when  
>> these
>> are used in complex nested loops.
>
> Hopefully, it would be easy to implement it "manually":
>
> function PreInc(var value: T; Delta: Integer = 1): T;
> function PostInc(var value: T; Delta: Integer = 1): T;

The post-increment is only evaluated after the entire expression has  
been evaluated in C (and even that simplistic description is probably  
wrong if you put it next to what the standard actually says). E.g.:

   int i, j;
   i = 0;
   j = i++ + i++;

After this, i=2 and j=0 (rather than 1).

Anyway, pre/post-increment operators are not a good idea. They are  
also discouraged by many C programmers these days (except in for- 
statements or single line statements equivalent to inc(i) in Pascal),  
because it can sometimes be very hard to understand the side effects  
in complex expressions (different C compilers can give different  
results with some expressions, because the C standard gives compilers  
quite some freedom regarding the evaluation order).


Jonas



More information about the fpc-devel mailing list