[fpc-devel] integer, cardinal

Marco van de Voort marcov at stack.nl
Mon Apr 18 09:43:54 CEST 2005


Some notes.
 
> This is useless. Your code and runtime checks will then vary for the kind
> of processor (32 or 64bit) you are compiling for. Even 'int' in C is
> always 4 bytes.

This is not true. Most recent 64-bit machines indeed are LP64, but e.g.
several Crays are ILP64. Moreover, the C standard afaik doesn't exclude it.
(but did weaken the wording on not relying on int=32bit in C99)

> The 'long' type is most of the time equal to the size of a
> pointer.

Not in LLP64, which e.g. win64 uses. There long is kept equal in size to
int, and longlong is introduced for pointer.

There are more OSes that do this btw, IIRC several commercial unices did
too.
 
> Don't expect that we change anything in this part. If you want to use an
> integer with the natural size of the processor you can use ptrint or
> ptruint.

Agree fully. Or use the new -Fa parameter which is specially for such cases.





More information about the fpc-devel mailing list