Size: a a a

2020 December 09

VA

Viktor Akselrod in Delphi & Lazarus
Renat Suleymanov
Ну In64 64-битное целое. Word - 16-битное. Соответственно Int64 битное можно представить, к примеру, 8 байтами или 4 Word'ами или двумя LongInt
к fpc судя по справке не имеет отношения, но в делфи надо быть аккуратным с LongInt, тк это платформозависимый тип. на некоторых платформах он будет 64 бита
http://docwiki.embarcadero.com/Libraries/Sydney/en/System.Longint
источник

SB

Sergey Bodrov in Delphi & Lazarus
LongWord сука тоже
источник

RS

Renat Suleymanov in Delphi & Lazarus
Viktor Akselrod
к fpc судя по справке не имеет отношения, но в делфи надо быть аккуратным с LongInt, тк это платформозависимый тип. на некоторых платформах он будет 64 бита
http://docwiki.embarcadero.com/Libraries/Sydney/en/System.Longint
Не понял что за справка. Топик стартер пишет на FreePascal. В FPC вроде одинаковый размер на всех платформах. Могу ошибаться https://wiki.lazarus.freepascal.org/Longint
источник

VA

Viktor Akselrod in Delphi & Lazarus
Renat Suleymanov
Не понял что за справка. Топик стартер пишет на FreePascal. В FPC вроде одинаковый размер на всех платформах. Могу ошибаться https://wiki.lazarus.freepascal.org/Longint
перечитай начало моего сообщения 🙂
источник

RS

Renat Suleymanov in Delphi & Lazarus
Viktor Akselrod
перечитай начало моего сообщения 🙂
А, не так понял сообщение
источник

VA

Viktor Akselrod in Delphi & Lazarus
Renat Suleymanov
А, не так понял сообщение
👌
источник

SB

Sergey Bodrov in Delphi & Lazarus
Не понимаю, нахера было LongInt и LongWord делать 64-битными? Они же в тысячах разных модулей используются как 32-битные. Word ведь 16 бит, а LongWord 32 бита, логично.
источник

RS

Renat Suleymanov in Delphi & Lazarus
Правильно конечно делать некоторые типа с документированной размерностью, а другие с переходящей. И с помощью алиасов применять. Понимая, что в зависимости от платформы они могут отличаться. В этом случае, когда важа очень размерность использовать другие "алиасы" типов
источник

VA

Viktor Akselrod in Delphi & Lazarus
в этом плане очень удобны алиасы в delphi (насчет fpc не знаю): Int32, UInt32, UInt8 и т.д
источник

RS

Renat Suleymanov in Delphi & Lazarus
Viktor Akselrod
в этом плане очень удобны алиасы в delphi (насчет fpc не знаю): Int32, UInt32, UInt8 и т.д
Все это есть в FPC тоже
источник

VA

Viktor Akselrod in Delphi & Lazarus
👍
источник

AS

Alexey Shumkin in Delphi & Lazarus
Viktor Akselrod
к fpc судя по справке не имеет отношения, но в делфи надо быть аккуратным с LongInt, тк это платформозависимый тип. на некоторых платформах он будет 64 бита
http://docwiki.embarcadero.com/Libraries/Sydney/en/System.Longint
засада какая ))

к счастью, в указанном мною коде  это нивелируется тем, что на тех платформах поля MS и LS не используются )))))
источник

ED

Ed Doc in Delphi & Lazarus
Viktor Akselrod
в этом плане очень удобны алиасы в delphi (насчет fpc не знаю): Int32, UInt32, UInt8 и т.д
Там ещё удобнее: PtrInt и PtrUInt
источник

VA

Viktor Akselrod in Delphi & Lazarus
Ed Doc
Там ещё удобнее: PtrInt и PtrUInt
в делфи есть аналоги, но речь шла о информации о размере в имени самой переменной.
источник

ED

Ed Doc in Delphi & Lazarus
Viktor Akselrod
в делфи есть аналоги, но речь шла о информации о размере в имени самой переменной.
А, понятно. У меня проекты кросс и разной битности, удобно, не надо помнить размерность 😊
источник

VA

Viktor Akselrod in Delphi & Lazarus
Ed Doc
А, понятно. У меня проекты кросс и разной битности, удобно, не надо помнить размерность 😊
дак о том и речь, что иногда надо помнить о размерности, чтобы размер переменной был одинаковым для любой платформы и на любой разрядности.
для этого и существуют платформонезависимые типы с постоянным размером.
а LongInt (с которого все началось) в delphi является платформозависимым.
источник

SB

Sergey Bodrov in Delphi & Lazarus
> а LongInt (с которого все началось) в delphi является платформозависимым.
Причем в Delphi 7 платформозависимыми были Integer и Cardinal.
источник

SB

Sergey Bodrov in Delphi & Lazarus
источник

SB

Sergey Bodrov in Delphi & Lazarus
Фундаментальные типы, блджад!
источник

ED

Ed Doc in Delphi & Lazarus
Viktor Akselrod
дак о том и речь, что иногда надо помнить о размерности, чтобы размер переменной был одинаковым для любой платформы и на любой разрядности.
для этого и существуют платформонезависимые типы с постоянным размером.
а LongInt (с которого все началось) в delphi является платформозависимым.
а вот в fpc, похоже,  нет. И судя по сорцам, там тоже есть алиасы (заимствованные из дельфей) для базовых типов

 { 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. }
 NativeInt  = Type PtrInt;
 NativeUInt = Type PtrUInt;

 Int8    = ShortInt;
 Int16   = SmallInt;
 Int32   = Longint;
 IntPtr  = PtrInt;
 UInt8   = Byte;
 UInt16  = Word;
 UInt32  = Cardinal;
 UIntPtr = PtrUInt;
источник