[fpc-pascal] 32 to 64 bits
Marco van de Voort
marcov at stack.nl
Sat Jan 10 00:36:37 CET 2009
In our previous episode, JoshyFun said:
> Can anybody help me understanding the variables which will be
> different (in size) in 32 and 64 bits versions, and which ones are
> "size fixed" across platform bits ?
> So the question, something like a table:
Afaik most is in the docs, but some short pointers:
unsigned 16 bits WORD? WORD?
signed 16 bits see table docs (smallint/shortint)
unsigned 32 bits DWORD? DWORD?
signed 32 bits compiler mode dependant 16/32
unsigned 64 bits QWORD? QWORD?
signed 64 bits Int64? Int64?
Native "integer" "native" is ambiguous.
Signed integer as big
as pointer PtrInt Ptrint
Unsigned integer as big
as pointer PtruInt Ptruint
"native" is confusing since it can taken in many ways. Native as in most
performance? Register size? Addressing size? Addressing size + segment ?
> Where LongInt fits ? Bits dependent or not ?
always 32-bit signed.
> Maybe a table is available in the wiki, but I was unable to find it.
The docs are the primary source, the language ref should have a table
somewhere near the start. I sometimes use it, because I always forget which
is 8-bit signed and which is 16-bit signed. (which is why I never use them
and always use ctypes)
More information about the fpc-pascal