On 12 dec 2005, at 13:57, Micha Nelissen wrote:

It happens in more in Pascal. For example, single(longint_var) is also not the same as single(pointer(longint_var)) (let's assume a 32bit system). In the former case, the longint is convert to a floating point number with the same value. In the latter case, you get a floating point number with the same bit pattern as that original longint (which may be a valid or invalid floating point number, and whose value is almost certainly different from the longint's value, except in case of 0).

Oh, I thought always the second case happened. Apparantly not.

No, otherwise an implicit type conversion (e.g. passing a longint to a function which expects a floating point parameter) and an explicit typecase (as above) would have different results. Implicit type conversions are not always allowed (because of type safety), but when they are allowed they have the same effect as an explicit typecast.


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

Reply via email to