"The cardinal type is currently always mapped to the longword type.
The definition of the cardinal and integer types may change from one
architecture to another and from one compiler mode to another."
"Always" or "may change" ? :-?
Current always, but may change ? Perfect English. Now so, but not guaranteed
to last forever. This pegging is mostly for Delphi compatibility (and then
specially the Windows headers). If you don't have that, it doesn't matter so
much.

Because of these weak definition of types (which is very confusing IMO) I often use a check in the implementation part of units if I have to reliy on sizes:

if sizeof(Word)<>2    then Halt(9000);
if sizeof(DWord)<>4   then Halt(9001);
if sizeof(LongInt)<>4 then Halt(9002);
etc.

Then I am at least warned in case my presumption are no longer valid.

Jürgen Hestermann.


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

Reply via email to