[fpc-pascal] type conversions

memsom at interalpha.co.uk memsom at interalpha.co.uk
Mon Dec 9 13:30:40 CET 2002


> How can TList.count return a -1 ? Normally, this cannot happen.

I checked it out in Delphi.

var
  a: integer;
  b: cardinal;
begin
  a := 0 -1; //fine.. like we all hoped ;-)
  
  b := 0 -1; //will not compile... gives an error concerning bounds

  b := 0;
  b := b -1; // no error

  showmessage(  format( '%d %1:d %1:u', [a, b] )  ); // shows '-1 -1 4294967295'
end;

So Jonas is correct, in so much as the value in memory is the same, but the 
compiler interprets it differently for signed/unsigned types.

I think, at the end of the day, the error produces the same result whether the 
value is '0' or 65535... though I admit I didn't understand how FPC interprets -
1 as an unsigned value ;-)

Matt

---------------------------------------------
This message was sent using Mistral WebMail.
http://www.mistral.co.uk/






More information about the fpc-pascal mailing list