Главная страница
    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.46 MB
Время: 0.025 c
14-1085509938
тихий вовочка
2004-05-25 22:32
2004.06.13
Как работать с XML


14-1085568463
AlexG
2004-05-26 14:47
2004.06.13
На сайте злоумышленник!


1-1085595407
SeF
2004-05-26 22:16
2004.06.13
поворот массива


14-1085579330
VID
2004-05-26 17:48
2004.06.13
О пополнении кошелька WebMoney через СБЕРБАНК


3-1085426648
V l a d i m i r
2004-05-24 23:24
2004.06.13
Что такое триггеры?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский