Skybuck Flying schrieb:
Not really, because if the platform changes from 32 bit to 64 bit then
other types would change too.
For example type declared as being longword would change to uint64.
Please understand generic types first.
A LongWord will always have 32 bits, because it's a concrete type.
Instead Integer, Cardinal, Char, String or Real can vary with every
compiler version or target platform, because these are *generic* types.
BTW I don't know of *any* language that changed "long" integers to 64
bits on 64 bit platforms.
Since C has absolutely *no* idea of fixed-size integers, all concrete
types are subject to conditional definitions in the header files:
#if (sizeof(int)==4)
typedef int32 int;
#elif (sizeof(int)==2)
typedef int16 int;
#else
#error clueless
#endif
#if (sizeof(int*)==4)
typedef ptr_int int32;
#elif (sizeof(int*)==8)
typedef ptr_int int64; //hope that an int64 type has been found out
#else
#error clueless
#endif
DoDi
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel