|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.08.2010, 16:02 | #1 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Непонятный код.
Работаю с физическим движком, там есть типы соединений:
Код:
Код:
Код:
|
18.08.2010, 16:11 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Это называется приведение типов. Пишется <имя типа>(Переменная) - значение этой переменной преобразовывается в тип <имя типа> В случае с pinjoint:=pointer(constraint); Имеется ввиду что constraint содержит значение, которое должно быть распознано как указатель.
I'm learning to live...
|
|
18.08.2010, 16:23 | #3 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
Код:
|
|
18.08.2010, 16:30 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Ты точно ничего не попутал? Может там есть другая переменка с таким же названием? Впрочим если не ошибаюсь это хитропопый вариант получения значения klass Эквивалентен constraint.klass, хотя и глупо выглядит.
I'm learning to live...
|
|
18.08.2010, 16:36 | #5 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
Вот если интересно посмотреть модуль: Последний раз редактировалось Вадим Буренков; 18.08.2010 в 16:38. |
|
18.08.2010, 16:42 | #6 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
так будет понятнее?
Код:
это только указание транслятору считать что значение имеет такой тип и все.
программа — запись алгоритма на языке понятном транслятору
|
18.08.2010, 16:43 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
да... Писал явный любитель указателей. Чувствуется Сишная школа...
Цитата:
посмотри модуль - там constraint - параметр-переменная указателя, зачем ее было нужно жестко к указателю приводить коль она указатель итак?
I'm learning to live...
|
|
18.08.2010, 17:04 | #8 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
На небольшом примере тоже работает:
Код:
|
18.08.2010, 17:09 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
new(pin); - Зарезервировали память
pin.data:=5; - Внесли в ячейку значение con:=@pin.constraint; - Присвоили указатель еще одной переменке на ту же ячейку pin:=nil; - Переменную отцепили от ячейки памяти Значение в памяти сохранилось! pin:=pointer(con); - Записали в переменную ранее сохраненный адрес на ячейку form1.Caption:=inttostr(pin.data); И конечно же все работает Ты же сохранил @pin.constraint; в переменку con. С этого момента у тебя на эту ячейку памяти где лежит 5 два якоря - pin и con. Обниление одного из них не приведет к потере ссылок на ячейку, вторая же все еще содержит этот адрес А потом ты обнилинной переменке pin присваиваешь то что содержится в con (а их содержимое - адрес одинаков был до pin:=NIL) Потому pin восстанавливается за счет con Кстати. Перепиши Код:
I'm learning to live...
Последний раз редактировалось Stilet; 18.08.2010 в 17:13. |
18.08.2010, 17:15 | #10 | ||
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
Сейчас посмотрел и правда pin и con выдают один и тот же адрес. А я то думал указатели по другому работают . Stilet, спасибо! Цитата:
Последний раз редактировалось Вадим Буренков; 18.08.2010 в 17:23. |
||
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
непонятный скрипт | osven | JavaScript, Ajax | 0 | 07.02.2010 06:13 |
непонятный баг | brain-bras | Общие вопросы C/C++ | 4 | 14.10.2009 21:26 |
Непонятный синтаксис. | jojahti | Общие вопросы C/C++ | 10 | 14.10.2009 19:05 |
непонятный компилятор | Waleriy | Общие вопросы по Java, Java SE, Kotlin | 2 | 11.12.2008 14:16 |
непонятный код | Kostua | Помощь студентам | 5 | 27.04.2008 18:17 |