Свой тип (класс) с некоторым завихом.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

wadman
постоялец
Сообщения: 122
Зарегистрирован: 18.10.2016 14:54:28
Контактная информация:

Сообщение wadman »

tema писал(а):Очень удобно

Особенно, когда char 2 или более байт... Да.
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

tema писал(а):Единственное чем я по такому преобразованию пользовался всегда это:

Код: Выделить всё

c:char;
a:byte absolute c;

Очень удобно :)

Можно по подробнее об этой конструкции?
Что, чаво, куды и как??? как говорится.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

gvido, директива absolute размещает начало переменной на тоже место, что и ругая переменная
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

Лекс Айрин писал(а):gvido, директива absolute размещает начало переменной на тоже место, что и ругая переменная

То есть пишем в переменную byte, а читаем с переменной char?
вернее мы получаем две переменные разного типа, данные которых расположены по одному адресу.
Один блок памяти на две переменные.
Как-то так?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

gvidoУгу... воистину так.
Аватара пользователя
serbod
постоялец
Сообщения: 449
Зарегистрирован: 16.09.2016 10:03:02
Откуда: Минск
Контактная информация:

Сообщение serbod »

tema писал(а):Единственное чем я по такому преобразованию пользовался всегда это:

Код: Выделить всё

c:char;
a:byte absolute c;

Очень удобно :)


Да, волшебная штука для всяких микроконтроллеров с "плоской" (не виртуальной) адресацией памяти. Позволяет стрельнуть не только в ногу, но и в любую другую часть тела, причем не всегда предсказуемо. Адрес переменной не всегда фиксирован с момента запуска программы и может меняться при создании-удалении экземпляра класса или подключении DLL.

Добавлено спустя 12 минут 14 секунд:
Там можно вместо реальной переменной указать любой физический адрес, как в указателе.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

serbod, собственно, это все одна из фишек которые скорее удобны были в досе, но сейчас они не так удобны, хотя иногда и можно использовать.
tema
постоялец
Сообщения: 376
Зарегистрирован: 24.03.2011 19:19:27

Сообщение tema »

Лекс Айрин писал(а):serbod, собственно, это все одна из фишек которые скорее удобны были в досе, но сейчас они не так удобны, хотя иногда и можно использовать.

Это точно. С времён дельфи и лазаруса не помню, когда хоть раз это использовал... В турбопаскале постоянно пользовался
Ответить