Механизм использования записи с вариантной частью
Количество байтов, выделяемых компилятором под запись с вариантной частью, определяется самым "длинным" ее вариантом. Более "короткие" наборы полей из других вариантов занимают лишь некоторую часть выделяемой памяти.
В приведенном выше примере самым "длинным" является вариант 'b': для него требуется 23 байта (21 байт для строки и 2 байта для целого числа). Для вариантов 'n' и 'm' требуется 4 и 5 байт соответственно (см. таблицу).
name, publisher | item | Вариантная часть | ||||||||||||||||||||
... | 'b' | author | year | |||||||||||||||||||
... | 'n' | data | ||||||||||||||||||||
... | 'm' | year | month | number | ||||||||||||||||||
... | 'b' | author | year |