Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Магнитные бури???


Ji ©   (2005-02-18 22:06:00) 

Вариант 1:

type
 re=record
   a:byte;
 end;
var
 v:re;
 f:file of re;


Вариант 2:

type
 re=record
   a:integer;
 end;
var
 v:re;
 f:file of re;


Вариант 3:

type
 re=record
   a:byte;
   b:integer;
 end;
var
 v:re;
 f:file of re;


Для каждого из трех вариантов выполняем следующий код:

AssignFile(f,'somefile');
ReWrite(f);
Write(f,v);
CloseFile(f);


Внимание вопрос!
Полученный в результате файл 'somefile'имеет следующий размер:
для варианта 1 - 1 байт;
для варианта 2 - 4 байта;
для варианта 3 - 8 байт; (!!!) причем три "лишних" байта заполняются мусором.
Subj?


panov   (2005-02-18 22:24:00) [1]

Поле "Тема вопроса" не оформлено.


Sam Stone   (2005-02-18 22:13:00) [2]

Только первый вариант смущает. Дельфи записи делает кратными 4 байтам (32 разряда) для скорости или удобства работы с памятью (точно не помню).
Возможно, в первом варианте файл воспринимается как file of byte.
Чтоб не было "магнитных бурь" (гы-гы-гы :))) надо использовать packed record.


Наверх

Титульная страница Поиск, карта сайта Написать письмо