![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем привет. Давайте подискупируем на следующую тему. Вот не пойму почему так происходит.
Например мы передаем строку для обработки в процедуру, и для обработки в нашей процедуре она сперва копируется в стек а потом производятся над ней действия. причем это не отображается на переменной которую передаем а только на его копии в процедуре. В этом случае будет передоваться информации ровно столько сколько занимает строка в памяти. Код:
procedure GetS(Str: string); ... Код:
procedure GetS(PStr: ^string); ... Код:
procedure GetS(PStr: Pointer); var str: ^string; begin str := PStr; ... Тогда как себя ведет вот такая передача? Код:
procedure GetS(var Str: string); ... Но если передавать объект в процедуру вот так Код:
procedure GetBtn(btn: TButton); ... Если у кого есть ссылки на статьи или свои домыслы очень интересное выслушать. Спасибо за уделенное время. Програмист приходит на стрельбище. Стреляет. Прапор смотрит на мешень и говорит Прапор: вы не попали ни один раз. Программист: Пули вылетели, проблемы у вас. |