2017-04-06 18:50 GMT-03:00 Mattias Gaertner <nc-gaert...@netcologne.de>:
> Why do you think that Delphi's longint has 64bits anywhere? > Delphi's NativeInt is 32 or 64bit depending on platform. > > http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Internal_Data_Formats_(Delphi)#Platform-Independent_Signed_Integer_Types . As Marco have pointed out, in Windows the Delphi's LongInt type is always 32-bits. On other platforms is platform dependent. > > > The documentation says "every platform has a ”native” integer size, > > depending on whether the platform is 8-bit, 16-bit, 32-bit or 64-bit. > e.g. > > On AVR this is 8-bit. ", but it is not clear about which integer types > are > > "natives". > > Most of FPC's integer types defined via IFDFEs. See > fpc/rtl/inc/systemh.inc > You can use Lazarus' Find Declaration on any type and see the > definition. > For example: > > {$ifdef CPU64} > SizeInt = Int64; > SizeUInt = QWord; > PtrInt = Int64; > PtrUInt = QWord; > ValSInt = int64; > ValUInt = qword; > CodePointer = Pointer; > CodePtrInt = PtrInt; > CodePtrUInt = PtrUInt; > {$endif CPU64} > > {$ifdef CPU32} > SizeInt = Longint; > SizeUInt = DWord; > PtrInt = Longint; > PtrUInt = DWord; > ValSInt = Longint; > ValUInt = Cardinal; > CodePointer = Pointer; > CodePtrInt = PtrInt; > CodePtrUInt = PtrUInt; > {$endif CPU32} > > > { NativeInt and NativeUInt are Delphi compatibility types. Even though > Delphi > has IntPtr and UIntPtr, the Delphi documentation for NativeInt states > that > 'The size of NativeInt is equivalent to the size of the pointer on the > current platform'. Because of the misleading names, these types > shouldn't be > used in the FPC RTL. Note that on i8086 their size changes between > 16-bit > and 32-bit according to the memory model, so they're not really a > 'native > int' type there at all. } > Still not clear for me. Are NativeInt and NativeUInt provided for Delphi compatibility, right? So, if i need an integer type which depends on platform/fpc compilation mode, which one should i use?
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal