Типы переменных — Введение в Delphi
Содержание > Типы переменных
|
Тип variant в Delphi
Май 27th, 2016 admin
Тип данных variant часто используется тогда, когда тип какого то объекта ранее не известен или когда какие-то функции или процедуры требуют именно тип аргументов — variant. Однако следует знать, что затраты памяти и времени на работу с типом variant больше, чем с обычными типами.
В переменных типа данных variant могут храниться данные любых типов данных, кроме записей, множеств, статических массивов, файлов, классов или ссылок на классы и Int64 (-263/263-1). Объекты Com и Cobra также могут храниться в типе variant.
Переменные типа variant занимают 16 битов и содержат код типа и значения переменной или указатель на это значение. В момент создания эти переменные инициализируются специальным значением Unassigned. Значение переменной nil свидетельствует о неизвестном или ошибочном значении переменной. Вы можете заказать мощный и надежный сервер lenovo nextscale n1200 по оптимальной и доступной цене.
Узнать действительный тип значения переменной variant можно при помощи функции VarType, возвращающей значение поля VarType записи типа TvarData (модуль System), содержащее код типа переменной variant. Имеется также предопределенная константа varTypeMask, сложение при которой по операции and с переменной типа TVarData возвращает истинный тип переменной. Например:
VarType(V) and varTypeMask = varDouble
вернет true, если в переменной V в данный момент хранится значение типа double или массив значений double.
Некоторые значения типов, возвращаемые функцией VarType:
Константа | Численное значение | Тип |
varEmpty | $0000 | Unassigned |
varNull | $0001 | null |
varInteger | $0003 | Integer |
varSingle | $0004 | Single |
varDouble | $0005 | Double |
varOLEstr | $0008 | Ссылка на динамически размещенную строку UNICODE |
varWord | $0012 | Word |
varString | $0100 | Ссылка на динамически размещенную строку в стиле Pascal |
varAny | $0101 | Тип Cobra |
varTypeMask | $0FFF | Битовая маска для извлечения кода типа |
varArray | $2000 | Бит, устанавливаемый при ссылке на массив variant |
varByRef | $4000 | Бит, устанавливаемый при ссылке на тип variant |
. delphi-box.ru varnull ссылка на тип Delphi
Опубликовано в рубрике Pascal
Комментирование и размещение ссылок запрещено.
Встроенные типы данных Delphi и объемы их памяти
Jeroen W. Pluimers о .NET, C#, Delphi, базах данных и личных интересах
Встроенные типы данных Delphi и их объемы памяти
выпущенный еще в 2011 году с Delphi XE2, иногда я забываю, какие типы данных имеют собственный размер, а какие сохраняют свой размер независимо от разрядности компилятора (викисловарь/википедия).
Это сообщение было мотивировано с помощью [WayBack] Начав с Delphi до того, как стал доступен тип Cardinal (Или всегда? Я не могу вспомнить). Я обычно объявляю 32-битные беззнаковые переменные как… — Томас Мюллер (dummzeuch) – Google+
Самое простое различие между Win32 и Win64, но существует больше не 32-битных платформ, поэтому их уже недостаточно:
- [WayBack] 64-битные типы данных Windows по сравнению с 32-битными Типы данных Windows — RAD Studio 10. 2 Токио
- [WayBack] 64-битные типы данных Windows по сравнению с 32-битными типами данных Windows — RAD Studio XE3 (да, это не было задокументировано в XE2)
Наиболее простыми для меня являются приведенные ниже таблицы, которые были представлены только в Delphi 10.2 Tokyo: [WayBack] Типы данных Delphi для интеграции API — RAD Studio.
Я выделил жирным шрифтом те, которые меняют размер .
Целочисленные типы данных
Тип Описание Указатель Байт 8-битное целое число без знака Пбайт Короткий интервал 8-битное целое число со знаком Пшортинт Word 16-битное целое число без знака Слово Малый Целый 16-битное целое число со знаком PSmallInt Кардинал 32-битное целое число без знака Кардинал Длинное слово 32-разрядное целое число без знака (32-разрядные платформы Windows, OSX32, 32-разрядные платформы iOS и Android)
64-разрядное целое число без знака (64-разрядные платформы iOS и 64-разрядные платформы Linux)PLongWord Фиксированный UInt 32-битное целое число без знака Пфикседуинт Целое число 32-битное целое число со знаком PЦелое число LongInt 32-разрядное целое число со знаком (32-разрядные платформы Windows, OSX32, 32-разрядные iOS и Android)
64-битное целое число со знаком (64-битные платформы iOS и 64-битные платформы Linux) PLongint FixedInt 32-битное целое число со знаком Пфиксединт UInt64 64-битное целое число без знака PUInt64 Целое64 64-битное целое число со знаком PInt64 Нативуинт 64-разрядное или 32-разрядное целое число без знака, зависящее от платформы PNativeUInt НативИнт 64-разрядное или 32-разрядное целое число со знаком, зависящее от платформы PNativeInt Типы данных с плавающей запятой
Тип Описание Указатель Запись Одноместный Значение с плавающей запятой одинарной точности (4 байта) Одиночный TSingleRec Двойной Значение двойной точности с плавающей запятой (8 байтов) PДвойной TDoubleRec Расширенный Значение с плавающей запятой повышенной точности (10 байт в Win32, , но 8 байт в Win64 )
См. страницу о приложениях для нескольких устройств.PРасширенный TExtended80Rec Реальный Псевдоним двойника н/д н/д
Ранее в документацию
- Delphi XE2 был добавлен раздел, описывающий эффекты разрядности платформы в [WayBack] Simple Types (Delphi) — RAD Studio XE2
- В документации Delphi XE8 добавлена дополнительная информация для 64-разрядных версий iOS в [WayBack] Simple Types (Delphi) — RAD Studio XE8
- В документации Delphi 10.2 Tokyo добавлена дополнительная информация о другой 64-битной платформе POSIX в [WayBack] Simple Types (Delphi) — RAD Studio 10.2 Tokyo 9 31 -1)
Подписанный 32-битный Целое число 64-разрядные платформы -9223372036854775808..9223372036854775807
(-2 63 . .2 63 -1)
Подписанный 64-битный Целое64 Нативуинт 32-разрядные платформы 0..4294967295
(0..2 32 -1)
Беззнаковый 32-разрядный Кардинал 64-разрядные платформы 0..18446744073709551615
(0..2 64 -1)
Беззнаковый 64-разрядный UInt64 LongInt 32-разрядные платформы и 64-разрядные платформы Windows -2147483648..2147483647
(-2 31 ..2 31 -1)
Подписанный 32-битный Целое число 64-разрядные платформы POSIX включают iOS и Linux -9223372036854775808..9223372036854775807
(-2 63 . .2 63 -1)
Подписанный 64-битный Целое64 Лонгворд 32-разрядные платформы и 64-разрядные платформы Windows 0..4294967295
(0..2 32 -1)
Беззнаковый 32-разрядный Кардинал 64-разрядные платформы POSIX включают iOS и Linux 0..18446744073709551615
(0..2 64 -1)
Беззнаковый 64-разрядный UInt64 - Примечание. 32-разрядные платформы включают 32-разрядную версию Windows, 32-разрядную версию macOS, 32-разрядную версию iOS, iOS Simulator и Android.
Независимые от платформы целые типы
Целочисленные типы, не зависящие от платформы, всегда имеют одинаковый размер, независимо от используемой платформы. Целочисленные типы, не зависящие от платформы, включают ShortInt, SmallInt, LongInt, Integer, Int64, Byte, Word, LongWord, Cardinal и UInt64.
Независимые от платформы целочисленные типы
Тип Диапазон Формат Псевдоним Короткий интервал -128..127
8-битный со знаком Целое8 Малый Целый -32768..32767
Подписанный 16-битный Целое16 Фиксированное Целое -2147483648..2147483647
Подписанный 32-битный Целое32 Целое число -2147483648..2147483647
Подписанный 32-битный Целое32 Целое64 -9223372036854775808..9223372036854775807
(-2 63 ..2 63 -1)
Подписанный 64-битный Байт 0. .255
Беззнаковый 8-битный UInt8 Word 0..65535
Беззнаковый 16-битный UInt16 Фиксированный UInt 0..4294967295
Беззнаковый 32-разрядный UInt32 Кардинал 0..4294967295
Беззнаковый 32-разрядный UInt32 UInt64 0..18446744073709551615
(0..2 64 -1)
Беззнаковый 64-разрядный Томас Мюллер написал в блоге о
Псевдоним
на [WayBack] Delphi LongWord не всегда представляет собой 32-битное целое число без знака – блог twm (через [WayBack] Знаете ли вы, что LongWord в Delphi (больше) не всегда является 32-битное целое число без знака? — Томас Мюллер (dummzeuch) — Google+), и я думаю, что он понял это задом наперед из того, что означает Embarcadero:-
NativeInt
на 32-разрядных платформах является псевдонимомInteger
(поэтому он подписан 32-разрядным) -
NativeInt
на 64-битных платформах является псевдонимомInt64
(поэтому он Signed 64-bit)
Еще несколько забавных ссылок
Для ленивого дня:
- История
- [WayBack] Delphi 2007: простые типы
- [WayBack] Delphi 2009: простые типы
- Конструкция компилятора [WayBack]. Почему так сложно создать 64-битную версию Delphi? — Переполнение стека
- [WayBack] Подготовка к Delphi 64
- [WayBack] Оракул в Delphi: 64-битная версия
- [WayBack] The Oracle в Delphi: больше интересных фактов об ассемблере x64 — новые директивы ассемблера
- [WayBack] The Oracle в Delphi: интересные факты об ассемблере x64
- [WayBack] Oracle в Delphi: записи в журнале регистрации Delphi за день:
- [WayBack] Оракул в Дельфах: разделенные и запутанные
- [WayBack] Оракул в Delphi: Это мой фрейм стека, мне плевать на твой фрейм стека!
- [WayBack] Оракул в Дельфах: интервью Delphi-Treff – на английском языке
–jeroen
Оценить:
Нравится:
Нравится Загрузка…
Эта запись была опубликована 21 августа 2019 г. в 18:00 и находится в разделе Delphi, Разработка, Разработка программного обеспечения. Вы можете следить за любыми ответами на эту запись через ленту RSS 2. 0. Вы можете оставить отзыв или вернуться со своего сайта.
- I. Структурное программирование. Базовый курс
- 1. Разработка программ на ПК. Алгоритмы
- 1.1. Разработка программ на ПК. Этап подготовки программы на ПК. Компиляторы и интерпретаторы
- 1.2. Понятие алгоритма. Способы написания алгоритмов. Классификация алгоритмов по структуре. Свойства алгоритма
- 1.3. Принципы структурного программирования. Модульная разработка программного обеспечения
- 1.4. Алгоритмический язык. Состав алгоритмического языка. Описание языка
- 2. Основные понятия языка Паскаль. Типы данных. Переменные, константы
- 2.1. Структура программы на Паскале
- 2.1.1. Структура программы на Паскале в системах программирования Delphi и Lazarus. Консольное приложение 9. Тип текста
- 2.3. Пользовательские типы данных
- 2.3.1. Перечислимые и интервальные типы данных
- 2.1. Структура программы на Паскале
- 3. Основные синтаксические конструкции языка Паскаль
- 3.1. Основные конструкции языка Паскаль
- 3.2. Операторы управления вычислительными процессами
- 3.2.1. Ветвящаяся структура. Условный оператор if
- 3.2.2. Петли. Операторы for, while-do, repeat-until. Операторы ломаются, продолжают
- 3.2.5. Оператор вариант case
- 3.4. Массивы
- 3.5. Строки символов. Строковый тип
- 3.5.1. Строки символов типа String. Операции со строками символов
- 3.5.2. Функции для работы со строками символов. Функции Concat, Copy, Delete, Insert, Length, Pos, Val, Str
- 3.6. Строки символов типов PChar, PAnsiChar, PWideChar
- 3.6.1. Реализация строк типа PChar в памяти компьютера. Типы PAnsiChar, PWideChar. Выделение памяти для строк. Доступ по индексу
- 3.6.2. Функции сравнения строк. Функции StrComp, StrIComp, StrLComp, StrLIComp
- 3.6.3. Функции, изменяющие содержимое строки. Функции StrCat, StrLCat, StrLower, StrUpper, StrCopy, StrECopy, StrLCopy, StrMove
- 3.6.4. Функции для поиска и получения информации о строках. Функции StrEnd, StrLen, StrPos, StrScan, StrRScan
- 3.6. Записи
- 1. Разработка программ на ПК. Алгоритмы
- 001 – Создание таблиц базы данных с помощью утилиты Database Desktop
- 002 — Создание перекрестных таблиц в Delphi
- 001 – Программирование события в Delphi 2010
- 002 — Расчет площади круга и объема сферы
- 003 — Создание нового проекта в Embracadero RAD Studio 2010 (Delphi 2010)
- 004 — Создание новой формы и подключение ее к основной форме приложения
- 006 — Настройка табуляции для компонентов на форме
- 007 — Создание главного меню.
%d блоггерам нравится это: