[fpc-pascal] Platform Dependent Integer Types
Marco van de Voort
marcov at stack.nl
Fri Apr 7 16:15:11 CEST 2017
In our previous episode, African Wild Dog said:
> Which integer types have their size dependent on platform?
> E.g. in Delphi, LongInt can 32 or 64 bits depending on the platform.
In Delphi they retroactively equated longint to C long, being 32-bit on
64-bits windows and 64-bit on Linux. The Delphi Linux compiler is btw a
different compiler than windows.
On FPC it is always 32-bit. Ptrint and ptruint scale with pointer size, and
integer depends on compilation mode, 16 or 32-bit.
For the C compiler that FPC corresponds with (usually gcc), there are types
that correspond with C types in unit ctypes.
Maybe some of the new ultra small targets like AVR make exceptions, but
those are the general rules.
> On AVR this is 8-bit. ", but it is not clear about which integer types are
> "natives".
The typical pascal solution is to use subranges and hope the compiler will
optimize it.
More information about the fpc-pascal
mailing list