On 11 Jan 2011, at 10:38, Carsten Bager wrote:

Is there a reason why the lo function returns the lo word from a longint in FPC and not the lo
byte as in Delphi.

It was decided/implemented before Delphi existed and when FPC's main goal was still to become a 32 bit alternative to Turbo Pascal. Maximal Borland compatibility was not as high on the list at the time as trying to "fix" the language where we believed Borland made a bad decision. Getting the lower word seemed (and still seems, to me at least) more logical and useful for longints than returning the lower byte, hence the decision.

Furthermore, lo() is implemented as an inline function in the system unit, which means that its result cannot differ depending on the language mode of the current source file. It could be changed into an internal compiler intrinsic so the behaviour differs for different syntax modes, but nobody has ever cared enough about this difference to make that change.

This and other similar differences are also documented at 
http://www.freepascal.org/port.var


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to