Node: Integer Types and Compatibility, Next: Summary of Integer Types, Previous: Integer Types with Specified Size, Up: Integer Types
If you care about ISO compliance, only use Integer
and
subranges of Integer
.
Some of GPC's non-ISO integer types exist in Borland Pascal, too:
Byte
, ShortInt
, Word
, and LongInt
. The
sizes of these types, however, are not the same as in Borland
Pascal. Even for Byte
this is not guaranteed (while probable,
though).
When designing GNU Pascal, we thought about compatibility to Borland
Pascal. Since GNU Pascal is (at least) a 32-bit compiler,
Integer
must have (at least) 32 bits. But what to do
with Word
? Same size as Integer
(like in BP) or 16
bits (like in BP)? We decided to make Word
the
“natural-sized” unsigned integer type, thus making it (at least)
32 bits wide. Similarly, we decided to give LongInt
twice the
size of Integer
(like in BP) rather than making it 32 bits
wide (like in BP). So LongInt
has 64 bits, and
ShortInt
has 16 bits on the IA32 platform.
On the other hand, to increase compatibility to Borland Pascal and
Delphi, GPC provides the alias name Comp
for LongInt
(64 bits on IA32) and SmallInt
for ShortInt
(16 bits
on IA32). Note that BP treats Comp
as a “real” type and
allows assignments like MyCompVar := 42.0
. Since we don't
consider this a feature, GPC does not copy this behaviour.