![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не могу понять суть такого рода объявлений
novill © (2006-08-09 15:51:00)
var
Sz: record
case Boolean of
True: (L,H: DWord);
False: (Value: Int64);
end;
или вот, например
TVarRec = record
case Byte of
vtInteger: (VInteger: Integer; VType: Byte);
vtBoolean: (VBoolean: Boolean);
vtChar: (VChar: Char);
vtExtended: (VExtended: PExtended);
vtString: (VString: PShortString);
vtPointer: (VPointer: Pointer);
vtPChar: (VPChar: PChar);
vtObject: (VObject: TObject);
vtClass: (VClass: TClass);
vtWideChar: (VWideChar: WideChar);
vtPWideChar: (VPWideChar: PWideChar);
vtAnsiString: (VAnsiString: Pointer);
vtCurrency: (VCurrency: PCurrency);
vtVariant: (VVariant: PVariant);
vtInterface: (VInterface: Pointer);
vtWideString: (VWideString: Pointer);
vtInt64: (VInt64: PInt64);
end;
DiamondShark (2006-08-09 16:33:00) [1]правильно
novill (2006-08-09 16:30:00) [2]То есть case тут имеет число формальное значение и просто оформляет перчисление возможных вариантов обращения
Записи
var
Sz: record
case byte of
0: (L,H: DWord);
1: (Value: Int64);
end;
,
var
Sz: record
case byte of
1: (L,H: DWord);
0: (Value: Int64);
end;
Будут иметь одинаковый смысл. Я правильно понял?
clickmaker (2006-08-09 16:18:00) [3]ну аналог union в Си, короче.
Можно и целый инт64 прочитать, а можно младшее/старшее дв. слово. А размером она один инт64 и будет
Германн (2006-08-09 16:09:00) [4]
> clickmaker © (09.08.06 16:06) [1]
>
> упакованная структура.
Пока ещё не упакованная. :-)
clickmaker (2006-08-09 16:06:00) [5]упакованная структура. Места для нее выделяется по максимальному полю, а доступ для удобства по любому из полей