Ответ 1
Подписанный однобайтовый целочисленный тип ShortInt
. Вы можете запомнить его размер за счет того, что он не совпадает с обычными реализациями C типа short
.
Что касается капитализации, запишите первую букву. Документация имеет тенденцию оставлять часть "int" в конце нижнего регистра, как в Longint, но я думаю, что это более распространено для ее использования. Не записывайте типы во всех столицах, если вы не используете типы Platform SDK, и вы хотите, чтобы ваш код показывал свои корни C; иначе я просто напишу Word
и DWord
, Long
и ULong
и т.д.)
Delphi 2009, возможно, ранее, уже определяет такие типы, как Int8
и UInt32
. Что касается определения Int
и UInt
, я бы сказал, нет. Язык, который вы используете, уже определяет Integer
и Cardinal
; не вводите новые имена типов, когда вам это не нужно. Сохраните имена, которые у вас уже есть, и тогда все остальные узнают, о чем вы говорите. (Кроме того, Int
уже является функцией в системном блоке.)
Используйте Используйте Cardinal
, если вам нужен неподписанный тип и не заботитесь о его размере; используйте LongWord
, когда переменная должна быть ровно четырьмя байтами. Аналогично для Integer
и LongInt
.Cardinal
, если вам нужен четырехбайтовый неподписанный тип; используйте LongWord
, если вам нужен общий неподписанный тип и не заботятся о размере. Аналогично для Integer
и LongInt
, в настоящее время. Если вы пишете 16-битный код, используйте LongInt
, когда вам нужно четыре байта, и используйте Integer
, когда вам не нужен размер; Cardinal
и LongWord
не существовало в 16-битных днях Delphi и Turbo Pascal.
Общая мудрость в течение многих лет заключалась в том, что Integer
и Cardinal
станут 64-битными типами в 64-разрядном компиляторе, но это, по-видимому, не так. Вместо этого они останутся 32-битными типами, как и их аналоги в Microsoft С++. Кроме того, будет новый тип NativeInt
, который будет 64-разрядным типом в 64-битном компиляторе. Типы LongInt
и LongWord
станут 64-битными типами, потому что они всегда были того же размера, что и тип Pointer
, который был 32 бит даже в 16-битные времена.