Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Записи с вариантами   Найти похожие ветки 

 
Anton   (2004-06-02 11:10) [0]

Вчера задавал этот вопрос, хочу ещё раз уточнить.
Есть такой код
type
 Long_Rec = packed record
   case byte of
     1: (Lo,Hi:word);
     2: (LoLo,LoHi,HiLo,HiHi:byte);
   end;
..............................................
 var
   v, aA, aB: Integer;
.................................        
      Long_Rec(v).LoHi := Byte(aA);
      Long_Rec(v).LoLo := Byte(aB);

Вопросы:
 1) Слово "byte" в операторе case of - это количество вариантов записи?
 2) При приведении v к Long_Rec значение аА и аВ присваиваются заменяют в памяти байты отведенные под переменную v?
 3) Вариант  2: (LoLo,LoHi,HiLo,HiHi:byte); - это вариант представления числа v?


 
Тимохов ©   (2004-06-02 11:14) [1]


> 1) Слово "byte" в операторе case of - это количество вариантов
> записи?

ничего не значит - просто синтаксис такой.
>  2) При приведении v к Long_Rec значение аА и аВ присваиваются
> заменяют в памяти байты отведенные под переменную v?

заменаяют lohi и lolo соответственно. т.е. будет заменена часть
v.

>  3) Вариант  2: (LoLo,LoHi,HiLo,HiHi:byte); - это вариант
> представления числа v?

здесь 4 байта, в v 4 байте. вы можете таким образом обращаться к байтам v по отдельности.


 
Anton   (2004-06-02 11:34) [2]

Вопрос - LoLo,LoHi,HiLo,HiHi:byte размещаются в памяти последовательно?


 
Тимохов ©   (2004-06-02 11:35) [3]


> Anton   (02.06.04 11:34) [2]

да.
в порядке описания.


 
Anton   (2004-06-02 11:40) [4]

А если будет записано так -  2: (LoLo,LoHi:byte; a: string);,
то приведение v к структуре сделать уже будет нельзя?
И когда я делаю так  Long_Rec(v) привожу v к записи, все присваивания делаются в том месте памяти где записана v?


 
Тимохов ©   (2004-06-02 11:43) [5]


> Anton   (02.06.04 11:40) [4]

вам string не удастся засунуть в вариантную запись.

> И когда я делаю так  Long_Rec(v) привожу v к записи, все
> присваивания делаются в том месте памяти где записана v?

да что вы одно и тоже спрашиваете уже не первый раз :))
ну, да...

ЗЫ. Возмите help, прочтите про вариантные записи. Что не поймете спросите. Иначе есть ощущение, что вы еще ничего не читали и не очень понятно, что вы знаете, что нет. Не конструктивно как-то ...


 
Anton   (2004-06-02 11:48) [6]

Спасибо за помощь


 
default ©   (2004-06-02 14:47) [7]

"> 1) Слово "byte" в операторе case of - это количество вариантов
> записи?

ничего не значит - просто синтаксис такой."
вот здесь не надо его запутывать, как раз размерностью байта и определ-ся макс-ое возм-ое число вар-ов трак-ки одних и тех же данных, он не совсем правда коррек-но выраз-ся, сказав 1)


 
Тимохов ©   (2004-06-02 14:49) [8]


> как раз размерностью байта и определ-ся макс-ое возм-ое
> число вар-ов трак-ки одних и тех же данных

и что это значит кроме синтаксиса? :))
здесь есть что-то от семантики?


 
default ©   (2004-06-02 14:54) [9]

Тимохов ©   (02.06.04 14:49) [8]
есть - возмо-ое число трактовок, ясно что на размер записи размер селектора не влияет
кстати могли просто сделать переч-ия через ";" без всяких селекторов; правда в книжках по пас-лю прив-ся очень сомнит-ое испол-ие этих селек-ов(мнимое)


 
Тимохов ©   (2004-06-02 14:56) [10]


> default ©   (02.06.04 14:54) [9]


> могли просто сделать переч-ия через ";

вот и я про тоже - это некий хвост наследия. Если бы они сейчас делали - уверен сделали бы через ";"



Страницы: 1 вся ветка

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.056 c
14-1085572047
kondryuk
2004-05-26 15:47
2004.06.13
нужен компилятор


3-1085013254
ROMshtain
2004-05-20 04:34
2004.06.13
Как определить что результат запроса null


6-1082774639
Graf
2004-04-24 06:43
2004.06.13
Счетчик траффика


9-1075830233
sqirrel
2004-02-03 20:43
2004.06.13
Game Maker


3-1085144845
SergeyI
2004-05-21 17:07
2004.06.13
Расскажите как правильно пишеться inner Join в accsess