Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.059 c
8-1081136189
Rentgen
2004-04-05 07:36
2004.06.13
Photoshop Color Table


14-1085419845
Lm
2004-05-24 21:30
2004.06.13
shell+XP


1-1086059536
sacred
2004-06-01 07:12
2004.06.13
Вызов процедуры


14-1085552319
Igorek
2004-05-26 10:18
2004.06.13
Опрос: любимая пора года, суток и погода


3-1084947358
Сергей Непочатов
2004-05-19 10:15
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский