По сути, компилятор будет переупорядочивать компоненты типов записей, если вы не используете команды pragma PACK или pragma PRESERVE_LAYOUT с типами записей. Кроме того, компилятор будет дополнять объекты, чтобы поддерживать выравнивание компонентов записи. Компоненты следуют:
Целое число: 8, 16 или 32-битные числа со знаком с двумя дополнениями
Число с плавающей запятой: 32-разрядный формат IEEE
Long_Float: 64-битный формат IEEE
Фиксированная точка: 8, 16 или 32 бита; однако указанный диапазон и дельта могут влиять на 16 или 32
Перечисления: целое число, обычно первый элемент представлен 0
Booleans: объект перечисления, длина 8 бит, LSB хранит значение: 0 = ложь, 1 = истина
Символы: объект перечисления, 8 бит длиной, без знака от 0 до 127
Типы доступа: 32 бита, 32-битное значение 0 представляет NULL
Массивы: хранятся смежно в главном порядке строк, размер зависит от базового типа. Массив дополняется, чтобы все элементы имели правильное выравнивание для своих типов.